Purpose of virtual devices?

I am using virtual switches for workarounds with Alexa, but was curious the other night about the other virtual devices that you can create and really can’t think of what purposes they’d serve and hoping someome could enlighten me. Already created a virtual thermostat and motion sensor, but no clue what good they can do me and now I’m basically trying to find a problem to fit the solution. Go figure huh?

Many, many possible uses! Such as…

  1. To add functionality on top of a real Device. For example, a Virtual Motion could add a “enable/disable” sub-Tile (and using Switch Command) allowing an easy way for a Routine to disabled Motion Detection during the daytime, entry/exit delays for SHM, or whatever you want. Of course, you could just use a Virtual Switch as a condition variable in a CoRE piston or, in some cases, SHM or Smart Lighting.

  2. To use the cloud to implement with software the functionality of hardware: a good Virtual Thermostat can do this! SmartApps don’t present the same type of UI as a Device. A Virtual Thermostat can look exactly like a real one inside the SmartThings App (and accept the same Commands), while a SmartApp actually links the real Temperature Sensors and basic Heater or AC Switches.

  3. Testing stuff, of course.

  4. Securely passing information between SmartApps making a SmartApp support a physical device of a type it wasn’t designed for.


Virtual devices are probably most commonly used in interfaces to external systems where the virtual device acts as a a proxy for the integration or in some cases for an IFTTT applet. The official SmartThings integration used to create virtual switch is for each harmony activity, I don’t know if it still does that. People also create virtual switches for integration with echo or Google home to do things like change the mode or arm smart home monitor. Virtual presence sensors are also popular if you want to have a presence indicator that you can turn on and off like a switch, or again have triggered by some third-party System like IFTTT presence.

They’re also often used to consolidate multiple physical devices into a single zone device. Say you have a large living room and it takes three motion sensors to cover the whole room. You could use Mike maxwell’s zone manager which creates a single virtual motion sensor to represent the zone and then activity on any one of the physical sensors would show up as activity on the single zone sensor, keeping the room active even if you have moved around in it.

We used to use virtual devices to create things like virtual timers, and some people still do that, although now with the many options available through web core it’s more common to do timing and sequencing that way. But they do have their uses, especially just for a simple timer.


As for the virtual thermostat, again, people used it to proxy an interface to an external system.

So I don’t think most people start with a virtual device and then come up with a purpose for it. I think they have a problem they’re trying to solve and they realize that a virtual device would enable a solution. :sunglasses:


how I use virtual switch :

I have exhaust fan in 2 bathrooms 1 in kitchen and 1 in art room
Now I create virtual switch "whole house fan"
and connect all 4fans to virtual switch.

by flipping virtual switch all fans turn on.


I have been spending hours searching for how to connect my virtual switch (already created) to actual switches. What it the process for connecting your “whole house fan” the the actual fan switches? Any help appreciated, thanks in advance!

Once you have created your virtual switch, it will show up in your things list just like any other physical device. So at that point you can use it in any smartthings automation. :sunglasses:

If you are using the SmartThings classic app, just use the official “smart lighting” feature and you can select switch A to turn on when switch B turns on, And either A or B can be a virtual device. Smartthings won’t care once the device is in the things list.

You can do something similar with the rules engine in the “smartthings (Samsung connect)“ app provided the virtual switch shows up in the things listed there. It may not if you are using a custom device type handler.

So basically as long as you can see the virtual device in the mobile app and toggle it on and off there, you can then include it in any automation which can access your devices.


practical example:
Created in smart lightning official app, but can be used in webcore or others:
Virtual switch = Kitchen cabinet light
Real light = Cupboard light
You can add multiple other real lights with Cupboard light in same app section

When you flip virtual switch Kitchen cabinet light in app it will turn on Cupboard light + all other lights you bundle with cupboard light.

You do not have to flip it manually. in different smartapp you can set
if motion( or open contact or time of the day) in the kitchen then flip Kitchen Cabinet light (virtual switch)
that will trigger first app above and turn on Cupboard light (and all bundled lights) .

1 Like

Thanks that helps clear things up quite a bit, it looks like that I’m also able to do something similar using seems instead of a virtual switch. But I think that’s a new were feature as well.

TOM SCHRÖTH - 678-505-1000

Alexa is a free app that help you to make instantly call, get weather report, news, play music etc. I have two scences, one will turn off the TV, the other one will turn on the TV. (I am using broadlink RM for that). It works well for me!