From 01435f7f424c439944b70782011b380c8a97da96 Mon Sep 17 00:00:00 2001
From: Pascal Vizeli <pascal.vizeli@syshack.ch>
Date: Fri, 30 Sep 2016 03:36:20 +0200
Subject: [PATCH] Bugfix voluptuous acer_projector (#3598)

---
 homeassistant/components/switch/acer_projector.py | 13 ++++++++++++-
 1 file changed, 12 insertions(+), 1 deletion(-)

diff --git a/homeassistant/components/switch/acer_projector.py b/homeassistant/components/switch/acer_projector.py
index 5845e611c31..7817a127642 100644
--- a/homeassistant/components/switch/acer_projector.py
+++ b/homeassistant/components/switch/acer_projector.py
@@ -4,6 +4,7 @@ Use serial protocol of Acer projector to obtain state of the projector.
 For more details about this component, please refer to the documentation
 at https://home-assistant.io/components/switch.acer_projector/
 """
+import os
 import logging
 import re
 
@@ -45,8 +46,18 @@ CMD_DICT = {LAMP: '* 0 Lamp ?\r',
             STATE_ON: '* 0 IR 001\r',
             STATE_OFF: '* 0 IR 002\r'}
 
+
+def isdevice(dev):
+    """Check if dev a real device."""
+    try:
+        os.stat(dev)
+        return str(dev)
+    except OSError:
+        raise vol.Invalid("No device found!")
+
+
 PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({
-    vol.Required(CONF_FILENAME): cv.isfile,
+    vol.Required(CONF_FILENAME): isdevice,
     vol.Optional(CONF_NAME, default=DEFAULT_NAME): cv.string,
     vol.Optional(CONF_TIMEOUT, default=DEFAULT_TIMEOUT): cv.positive_int,
     vol.Optional(CONF_WRITE_TIMEOUT, default=DEFAULT_WRITE_TIMEOUT):