diff --git a/homeassistant/components/sensor/deutsche_bahn.py b/homeassistant/components/sensor/deutsche_bahn.py
index 2dc589271e9..b358a4b975a 100644
--- a/homeassistant/components/sensor/deutsche_bahn.py
+++ b/homeassistant/components/sensor/deutsche_bahn.py
@@ -9,7 +9,7 @@ from datetime import timedelta
 
 import voluptuous as vol
 
-from homeassistant.const import (CONF_PLATFORM)
+from homeassistant.components.sensor import PLATFORM_SCHEMA
 import homeassistant.helpers.config_validation as cv
 from homeassistant.util import Throttle
 from homeassistant.helpers.entity import Entity
@@ -23,10 +23,9 @@ ICON = 'mdi:train'
 
 _LOGGER = logging.getLogger(__name__)
 
-PLATFORM_SCHEMA = vol.Schema({
-    vol.Required(CONF_PLATFORM): 'deutsche_bahn',
-    vol.Required(CONF_START): cv.string,
+PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({
     vol.Required(CONF_DESTINATION): cv.string,
+    vol.Required(CONF_START): cv.string,
 })
 
 # Return cached results if last scan was less then this time ago.
@@ -47,7 +46,7 @@ class DeutscheBahnSensor(Entity):
 
     def __init__(self, start, goal):
         """Initialize the sensor."""
-        self._name = start + ' to ' + goal
+        self._name = '{} to {}'.format(start, goal)
         self.data = SchieneData(start, goal)
         self.update()
 
diff --git a/homeassistant/components/sensor/google_travel_time.py b/homeassistant/components/sensor/google_travel_time.py
index 378e9c9c124..d95f43d68ae 100644
--- a/homeassistant/components/sensor/google_travel_time.py
+++ b/homeassistant/components/sensor/google_travel_time.py
@@ -7,12 +7,14 @@ https://home-assistant.io/components/sensor.google_travel_time/
 from datetime import datetime
 from datetime import timedelta
 import logging
+
 import voluptuous as vol
 
+from homeassistant.components.sensor import PLATFORM_SCHEMA
 from homeassistant.helpers.entity import Entity
 from homeassistant.const import (
-    CONF_API_KEY, EVENT_HOMEASSISTANT_START, ATTR_LATITUDE, ATTR_LONGITUDE)
-
+    CONF_API_KEY, CONF_NAME, EVENT_HOMEASSISTANT_START, ATTR_LATITUDE,
+    ATTR_LONGITUDE)
 from homeassistant.util import Throttle
 import homeassistant.helpers.config_validation as cv
 import homeassistant.helpers.location as location
@@ -25,12 +27,12 @@ REQUIREMENTS = ['googlemaps==2.4.4']
 # Return cached results if last update was less then this time ago
 MIN_TIME_BETWEEN_UPDATES = timedelta(minutes=5)
 
+DEFAULT_NAME = 'Google Travel Time'
 CONF_ORIGIN = 'origin'
 CONF_DESTINATION = 'destination'
 CONF_TRAVEL_MODE = 'travel_mode'
 CONF_OPTIONS = 'options'
 CONF_MODE = 'mode'
-CONF_NAME = 'name'
 
 ALL_LANGUAGES = ['ar', 'bg', 'bn', 'ca', 'cs', 'da', 'de', 'el', 'en', 'es',
                  'eu', 'fa', 'fi', 'fr', 'gl', 'gu', 'hi', 'hr', 'hu', 'id',
@@ -40,35 +42,33 @@ ALL_LANGUAGES = ['ar', 'bg', 'bn', 'ca', 'cs', 'da', 'de', 'el', 'en', 'es',
                  'zh-CN', 'zh-TW']
 
 TRANSIT_PREFS = ['less_walking', 'fewer_transfers']
+TRAVEL_MODE = ['driving', 'walking', 'bicycling', 'transit']
+AVOID = ['tolls', 'highways', 'ferries', 'indoor']
+TRANSPORT_TYPE = ['bus', 'subway', 'train', 'tram', 'rail']
+TRAVEL_MODEL = ['best_guess', 'pessimistic', 'optimistic']
+UNITS = ['metric', 'imperial']
 
-PLATFORM_SCHEMA = vol.Schema({
-    vol.Required('platform'): 'google_travel_time',
-    vol.Optional(CONF_NAME): vol.Coerce(str),
-    vol.Required(CONF_API_KEY): vol.Coerce(str),
-    vol.Required(CONF_ORIGIN): vol.Coerce(str),
-    vol.Required(CONF_DESTINATION): vol.Coerce(str),
-    vol.Optional(CONF_TRAVEL_MODE):
-        vol.In(["driving", "walking", "bicycling", "transit"]),
+PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({
+    vol.Required(CONF_API_KEY): cv.string,
+    vol.Required(CONF_DESTINATION): cv.string,
+    vol.Required(CONF_ORIGIN): cv.string,
+    vol.Optional(CONF_NAME, default=DEFAULT_NAME): cv.string,
+    vol.Optional(CONF_TRAVEL_MODE): vol.In(TRAVEL_MODE),
     vol.Optional(CONF_OPTIONS, default={CONF_MODE: 'driving'}): vol.All(
         dict, vol.Schema({
-            vol.Optional(CONF_MODE, default='driving'):
-                vol.In(["driving", "walking", "bicycling", "transit"]),
+            vol.Optional(CONF_MODE, default='driving'): vol.In(TRAVEL_MODE),
             vol.Optional('language'): vol.In(ALL_LANGUAGES),
-            vol.Optional('avoid'): vol.In(['tolls', 'highways',
-                                           'ferries', 'indoor']),
-            vol.Optional('units'): vol.In(['metric', 'imperial']),
+            vol.Optional('avoid'): vol.In(AVOID),
+            vol.Optional('units'): vol.In(UNITS),
             vol.Exclusive('arrival_time', 'time'): cv.string,
             vol.Exclusive('departure_time', 'time'): cv.string,
-            vol.Optional('traffic_model'): vol.In(['best_guess',
-                                                   'pessimistic',
-                                                   'optimistic']),
-            vol.Optional('transit_mode'): vol.In(['bus', 'subway', 'train',
-                                                  'tram', 'rail']),
+            vol.Optional('traffic_model'): vol.In(TRAVEL_MODEL),
+            vol.Optional('transit_mode'): vol.In(TRANSPORT_TYPE),
             vol.Optional('transit_routing_preference'): vol.In(TRANSIT_PREFS)
         }))
 })
 
-TRACKABLE_DOMAINS = ["device_tracker", "sensor", "zone"]
+TRACKABLE_DOMAINS = ['device_tracker', 'sensor', 'zone']
 
 
 def convert_time_to_utc(timestr):
@@ -81,10 +81,10 @@ def convert_time_to_utc(timestr):
 
 
 def setup_platform(hass, config, add_devices_callback, discovery_info=None):
-    """Setup the travel time platform."""
+    """Setup the Google travel time platform."""
     # pylint: disable=too-many-locals
     def run_setup(event):
-        """Delay the setup until home assistant is fully initialized.
+        """Delay the setup until Home Assistant is fully initialized.
 
         This allows any entities to be created already
         """
@@ -122,7 +122,7 @@ def setup_platform(hass, config, add_devices_callback, discovery_info=None):
 
 # pylint: disable=too-many-instance-attributes
 class GoogleTravelTimeSensor(Entity):
-    """Representation of a tavel time sensor."""
+    """Representation of a Google travel time sensor."""
 
     # pylint: disable=too-many-arguments
     def __init__(self, hass, name, api_key, origin, destination, options):
@@ -130,6 +130,7 @@ class GoogleTravelTimeSensor(Entity):
         self._hass = hass
         self._name = name
         self._options = options
+        self._unit_of_measurement = 'min'
         self._matrix = None
         self.valid_api_connection = True
 
@@ -192,7 +193,7 @@ class GoogleTravelTimeSensor(Entity):
     @property
     def unit_of_measurement(self):
         """Return the unit this state is expressed in."""
-        return "min"
+        return self._unit_of_measurement
 
     @Throttle(MIN_TIME_BETWEEN_UPDATES)
     def update(self):
diff --git a/homeassistant/components/sensor/swiss_public_transport.py b/homeassistant/components/sensor/swiss_public_transport.py
index 2ca1992659b..0bfdc286bb6 100644
--- a/homeassistant/components/sensor/swiss_public_transport.py
+++ b/homeassistant/components/sensor/swiss_public_transport.py
@@ -8,34 +8,49 @@ import logging
 from datetime import timedelta
 
 import requests
+import voluptuous as vol
 
+from homeassistant.components.sensor import PLATFORM_SCHEMA
+from homeassistant.const import CONF_NAME
 import homeassistant.util.dt as dt_util
 from homeassistant.helpers.entity import Entity
 from homeassistant.util import Throttle
+import homeassistant.helpers.config_validation as cv
 
-_LOGGER = logging.getLogger(__name__)
 _RESOURCE = 'http://transport.opendata.ch/v1/'
+DEFAULT_NAME = 'Next Departure'
 
 ATTR_DEPARTURE_TIME1 = 'Next departure'
 ATTR_DEPARTURE_TIME2 = 'Next on departure'
 ATTR_START = 'Start'
 ATTR_TARGET = 'Destination'
 ATTR_REMAINING_TIME = 'Remaining time'
+CONF_START = 'from'
+CONF_DESTINATION = 'to'
 ICON = 'mdi:bus'
 
 TIME_STR_FORMAT = "%H:%M"
 
+PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({
+    vol.Required(CONF_DESTINATION): cv.string,
+    vol.Required(CONF_START): cv.string,
+    vol.Optional(CONF_NAME, default=DEFAULT_NAME): cv.string,
+})
+
+_LOGGER = logging.getLogger(__name__)
+
 # Return cached results if last scan was less then this time ago.
 MIN_TIME_BETWEEN_UPDATES = timedelta(seconds=60)
 
 
 def setup_platform(hass, config, add_devices, discovery_info=None):
     """Get the Swiss public transport sensor."""
+    name = config.get(CONF_NAME)
     # journal contains [0] Station ID start, [1] Station ID destination
     # [2] Station name start, and [3] Station name destination
-    journey = [config.get('from'), config.get('to')]
+    journey = [config.get(CONF_START), config.get(CONF_DESTINATION)]
     try:
-        for location in [config.get('from', None), config.get('to', None)]:
+        for location in [config.get(CONF_START), config.get(CONF_DESTINATION)]:
             # transport.opendata.ch doesn't play nice with requests.Session
             result = requests.get(_RESOURCE + 'locations?query=%s' % location,
                                   timeout=10)
@@ -46,20 +61,18 @@ def setup_platform(hass, config, add_devices, discovery_info=None):
             "Check your settings and/or the availability of opendata.ch")
         return False
 
-    dev = []
     data = PublicTransportData(journey)
-    dev.append(SwissPublicTransportSensor(data, journey))
-    add_devices(dev)
+    add_devices([SwissPublicTransportSensor(data, journey, name)])
 
 
 # pylint: disable=too-few-public-methods
 class SwissPublicTransportSensor(Entity):
     """Implementation of an Swiss public transport sensor."""
 
-    def __init__(self, data, journey):
+    def __init__(self, data, journey, name):
         """Initialize the sensor."""
         self.data = data
-        self._name = 'Next Departure'
+        self._name = name
         self._from = journey[2]
         self._to = journey[3]
         self.update()
@@ -123,7 +136,7 @@ class PublicTransportData(object):
             'to=' + self.destination + '&' +
             'fields[]=connections/from/departureTimestamp/&' +
             'fields[]=connections/',
-            timeout=30)
+            timeout=10)
         connections = response.json()['connections'][:2]
 
         try: