diff --git a/homeassistant/components/device_tracker/owntracks.py b/homeassistant/components/device_tracker/owntracks.py index 8254285a98b..40cb19e05e7 100644 --- a/homeassistant/components/device_tracker/owntracks.py +++ b/homeassistant/components/device_tracker/owntracks.py @@ -11,7 +11,7 @@ from collections import defaultdict import homeassistant.components.mqtt as mqtt from homeassistant.const import STATE_HOME -from homeassistant.util import convert +from homeassistant.util import convert, slugify DEPENDENCIES = ['mqtt'] @@ -91,7 +91,7 @@ def setup_scanner(hass, config, see): return # OwnTracks uses - at the start of a beacon zone # to switch on 'hold mode' - ignore this - location = data['desc'].lstrip("-") + location = slugify(data['desc'].lstrip("-")) if location.lower() == 'home': location = STATE_HOME diff --git a/tests/components/device_tracker/test_owntracks.py b/tests/components/device_tracker/test_owntracks.py index 7fa290e4005..e5fcd454835 100644 --- a/tests/components/device_tracker/test_owntracks.py +++ b/tests/components/device_tracker/test_owntracks.py @@ -230,6 +230,20 @@ class TestDeviceTrackerOwnTracks(unittest.TestCase): # Left clean zone state self.assertFalse(owntracks.REGIONS_ENTERED[USER]) + def test_event_with_spaces(self): + """Test the entry event.""" + message = REGION_ENTER_MESSAGE.copy() + message['desc'] = "inner 2" + self.send_message(EVENT_TOPIC, message) + self.assert_location_state('inner_2') + + message = REGION_LEAVE_MESSAGE.copy() + message['desc'] = "inner 2" + self.send_message(EVENT_TOPIC, message) + + # Left clean zone state + self.assertFalse(owntracks.REGIONS_ENTERED[USER]) + def test_event_entry_exit_inaccurate(self): """Test the event for inaccurate exit.""" self.send_message(EVENT_TOPIC, REGION_ENTER_MESSAGE)