diff --git a/runbullet/plugins/music/mpd/__init__.py b/runbullet/plugins/music/mpd/__init__.py
index 9ea37a9c..ba5e32db 100644
--- a/runbullet/plugins/music/mpd/__init__.py
+++ b/runbullet/plugins/music/mpd/__init__.py
@@ -3,6 +3,10 @@ import mpd
 from .. import MusicPlugin
 
 class MusicMpdPlugin(MusicPlugin):
+    _requires = [
+        'mpd'
+    ]
+
     def _init(self):
         self.client = mpd.MPDClient(use_unicode=True)
         self.client.connect(self.config['host'], self.config['port'])
diff --git a/runbullet/plugins/switch/__init__.py b/runbullet/plugins/switch/__init__.py
new file mode 100644
index 00000000..a968f1b8
--- /dev/null
+++ b/runbullet/plugins/switch/__init__.py
@@ -0,0 +1,28 @@
+from .. import Plugin
+
+class SwitchPlugin(Plugin):
+    def run(self, args):
+        if 'on' in args and args['on']:
+            self.on(args)
+        elif 'off' in args and args['off']:
+            self.off(args)
+        elif 'toggle' in args and args['toggle']:
+            self.toggle(args)
+
+        return self.status()
+
+    def on(self, args):
+        raise NotImplementedError()
+
+    def off(self, args):
+        raise NotImplementedError()
+
+    def toggle(self, args):
+        raise NotImplementedError()
+
+    def status(self):
+        raise NotImplementedError()
+
+
+# vim:sw=4:ts=4:et:
+
diff --git a/runbullet/plugins/switch/wemo/__init__.py b/runbullet/plugins/switch/wemo/__init__.py
new file mode 100644
index 00000000..13471268
--- /dev/null
+++ b/runbullet/plugins/switch/wemo/__init__.py
@@ -0,0 +1,39 @@
+import logging
+
+from ouimeaux.environment import Environment, UnknownDevice
+
+from .. import SwitchPlugin
+
+class SwitchWemoPlugin(SwitchPlugin):
+    _requires = [
+        'ouimeaux'
+    ]
+
+    def _init(self):
+        logging.basicConfig(level=logging.INFO)
+
+        self.env = Environment()
+        self.env.start()
+        logging.info('Starting WeMo discovery')
+        self.env.discover(seconds=3)
+
+    def on(self, args):
+        switch = self.env.get_switch(args['device'])
+        logging.info('Turning {} on'.format(args['device']))
+        switch.on()
+
+    def off(self, args):
+        switch = self.env.get_switch(args['device'])
+        logging.info('Turning {} off'.format(args['device']))
+        switch.off()
+
+    def toggle(self, args):
+        switch = self.env.get_switch(args['device'])
+        logging.info('Toggling {}'.format(args['device']))
+        switch.toggle()
+
+    def status(self):
+        return ['']
+
+# vim:sw=4:ts=4:et:
+