[ST Edge] Virtual Things Edge Driver


Following @TAustin 's great work on vEdge Creator, I was curious to explore a different approach for creating virtual devices.
The driver allows creation of devices one-by-one.


How to use

After installing the driver, press “Add device” and then “Scan nearby”.
This will create “vDev Controller” - virtual devices controller (currently it only creates virtual devices, but does not actually allow to control them).
Once the controller is created, enter its detailed view.
The user specifies a type of the device to create by choosing “Virtual Thing Type To Create” and presses switch button.
The controller will report its status (ready/creating/created) and the name of the device being created.
When the device is created the switch goes into ‘Off’ state and the controller is ready to create another device.
Once the virtual devices are created, it is completely fine to delete the Controller. The deletion of the controller should not affect the already created devices in any way.
However, the controller will be automatically created during the next discovery process.

Supported device types

  1. Switch (can be used as a trigger source in Alexa as it contains hidden contactSensor capability)
  2. Motion sensor
  3. Presence sensor
  4. Contact sensor
  5. Lock
  6. Dimmer
  7. Curtain switch


Controller’s view

Selecting the device type to create

I’d like to take this opportunity to thank @nayelyz , @erickv and @psbarrett for their help.


Thanks. This is more simple to use than driver @TAustin made. And all virtual devices were found by Alexa. Great example how these drivers evolve over time. :+1::blush:

1 Like

Thanks very much for creating and sharing this, it is nice and easy to use.

1 Like

Great work! Do you intend to add the virtual thermostat?

1 Like

Hi @sulisenator ,

Could you please elaborate, how could it be used and/or what capabilities are needed for it?

Just a virtual device with the usual parameters of a thermostat, to integrate a non-compatible thermostat or A/C (I do that with nodered, I grab the data from the device via API and replicate them on the virtual device, and viceversa)

IT was done in the edge driver you based this on.

@sulisenator I can give it a try.
Don’t you need the temperature capability to be able to set the current temperature?
So the virtual thermostat would compare the provided temperature with cooling and heating settings and apply the mode accordingly?
Or you need only to reflect the external mode?

There is groovy smart app ”Virtual Thermostat with Devices” that creates virtual thermostat device, that is linked through smart app, to temperature sensor, and to outlets/plugs, that can be turned on or off, when temperature is compared with actual and set temperature for cooling or heating, depending on set mode.
Pretty much settings have links to:

  • Temperature sensor
  • Heating device
  • Cooling device

Beauty of this solution is Simplicity, as you set desired temperatures, and you leave app alone. If you want to increase/decrease temperature, you just do it by adjusting virtual thermostat. No complicated Automations.

This app will be gone when groovy is gone.
There is need for this virtual device, to links sensors and non smart fans and heaters that are plugged in.

@sulisenator @milandjurovic71
Do you mean something like that or without the temparature measurement?

Something like that or any other standard Thermostat.
This what I have with ecobee

Temperature and humidity should come from any device that supports both capabilities.
As you said, Heating Temperature should trigger another device On (with switch capabilities) for any temperature lower than set, coming from sensor, below set Heating, and, Cooling temperature should have device On for any temperature above set.
If possible to add third option just to have circulation device, that would be great.

Fan Mode is usually On, Auto and Circulation
Thermostat modes are usually
Auto, Cool, Heat and Off, and some have Emergency.

If for example thermostat is in Heating mode, it would triger Heating device. If it’s in Cooling it would trigger Cooling device (switch or plug), and if in Circulation another one.

Thank you for your clarifications.

So please let me see if I understand correctly.

  1. The virtual thermostat should get temperature and humidity values from external sensors
  2. The state should be calculated as follows
    If the mode is ‘Heat’ it should be ‘heating’
    If the mode is ‘Cool’ - ‘cooling’
    If the mode is ‘Auto’ it will be calculated, based on temperature reading and heating/cooling settings
  3. I think the heating/cooling switches can be triggered with simple automation, based on calculated operating state
    (If ‘heating’, turn on heating switch, turn off cooling switch. If cooling, turn off heating switch, turn on cooling switch)
  4. Fan switch can be controlled with automation, based on fan mode and perhaps on humidity value.

If this seems to be OK, I will take a look at possibility to feed the virtual device with temperature/humidity values. I’m not sure the edge driver can be fed with values from external sensors

Maybe I did not explain well. Lets start again :grinning:. Virtual Thermostat should behave like real thermostat, only difference would be where Current temperature is coming from, and what is activated when thermostat status changes from Idle.
When HVAC Mode is set to Heat the virtual thermostat would compare the sensor provided temperature with heating settings and turn selected device On, and when provided temperature is equal with Heating Settings than it will turn device off.

When HVAC Mode is set to Cool the virtual thermostat would compare the sensor provided temperature with cooling settings and turn selected device On, and when provided temperature is equal with cooling Settings than it will turn device off.

When HVAC mode is set to Off, it should not be doing anything, and all connected devices should be turned off.

When HVAC Mode is set to Auto the virtual thermostat would compare the sensor provided temperature with cooling and Heating settings and turn selected device On when provided temperature is not between cooling and heating temperatures, and when provided temperature is whithin range with cooling and heating settings than it will turn device off.

Maybe this will clear more

After I had some problems today with Smartthings, all automayion and scenes got deleted, these virtual devices made with this driver seem to go offline straight after they are created. I tried several different devices. Then deleted the driver, installed it again and now even vDevController seems to be offline. :thinking:

Hi @Sakari ,
I’m sorry to hear the driver didn’t work for you.
Do you see the devices are being offline also in IDE or only in the APP?
If the devices are shown online in IDE, but offline in the APP, perhaps cleaning the app cache would help.
Would it be possible to provide the logs from the driver?
During development, I have experienced devices being offline if the new driver’s version is not installed properly. However, I published only a single version without any upgrades to the Beta channel, so I’m not sure how that could be related.
Further, the driver has no access to automations. It can’t just delete them.
I would suggest to contact ST support regarding this. They should be able to pull the logs directly from your hub.
As a last resort, I would suggest to reboot the hub. However, in this case, the hub logs would be probably lost, so it should be done only after contacting support.

I think this problem with automation getting deleted was different but happened about at the same time. It messed up many of my devices. Virtual devices used to work ok until that point. But I’ll try to clear cache and see if it has any effect.

hi Yakov,

I tried to install your Virtual Driver to my ST hub. i’m unable to change the Virtual Thing Type. Here’s what i’m getting.

It just says checking…
then when i try to chose the type, it loads (or reads) for a while then gives the error below.

I already tried uninstalling and reinstalling the driver. Restarted the Hub but still it didn’t help. do you have any idea how to fix this?


Do I understand correctly that you are unable to choose the type of virtual thing to create?
Or you get network error when pressing the switch button to create the device?

Also, would it be possible to collect the driver logs from smarthings cli?

after selecting the device type, i get this loading icon. And then, it returns the network or server error.

are these the logs you are referring to?

I deleted the driver and installed it again. Now I’m stuck in this checking state too. :thinking:

1 Like

Hi @Sakari and @averagebald ,

I suspect that there is an issue with the platform that somehow propagates the changes to driver that I post only to my private development channel, not to your Beta channel.

The new version will have additional virtual things to create and therefore the old controller does not understand the new capability.

I will try to see whether I can provide an urgent fix and will update as soon as I have some solution.

I would also suggest to delete the driver and unenroll from the channel, clean the cache in the app and then enroll again and install the driver.