diff --git a/homeassistant/components/sensor/command_sensor.py b/homeassistant/components/sensor/command_sensor.py index fc651fcc157abe79945980338d83622bebe9c45d..82ac36be50052edf2395fb61ad59f28e7657ede4 100644 --- a/homeassistant/components/sensor/command_sensor.py +++ b/homeassistant/components/sensor/command_sensor.py @@ -98,7 +98,7 @@ class CommandSensorData(object): _LOGGER.info('Running command: %s', self.command) try: - return_value = subprocess.check_output(self.command.split()) + return_value = subprocess.check_output(self.command, shell=True) self.value = return_value.strip().decode('utf-8') except subprocess.CalledProcessError: _LOGGER.error('Command failed: %s', self.command) diff --git a/homeassistant/components/shell_command.py b/homeassistant/components/shell_command.py index c5c60e98e7d50af63dedd3af3c04f6be5e560186..493b605091a2b12e7934243fd5384d93359b66dc 100644 --- a/homeassistant/components/shell_command.py +++ b/homeassistant/components/shell_command.py @@ -34,7 +34,7 @@ def setup(hass, config): def service_handler(call): """ Execute a shell command service. """ try: - subprocess.call(conf[call.service].split(' '), + subprocess.call(conf[call.service], shell=True, stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL) except subprocess.SubprocessError: diff --git a/tests/components/test_shell_command.py b/tests/components/test_shell_command.py index d9248d8f861a3273ed9b462d2689948cb52306a7..eefbdc5b2303c0aaecae89cb265238110643b165 100644 --- a/tests/components/test_shell_command.py +++ b/tests/components/test_shell_command.py @@ -30,7 +30,7 @@ class TestShellCommand(unittest.TestCase): path = os.path.join(tempdirname, 'called.txt') self.assertTrue(shell_command.setup(self.hass, { 'shell_command': { - 'test_service': "touch {}".format(path) + 'test_service': "date > {}".format(path) } }))