Virtual Thermostat with Device in the new platform

Most of my temperature sensors are Aeotec Multisensor 6 z-wave devices. Has anybody seen a virtual thermostat solution for z-wave sensors?

Hi @BartschLabs

It could be done, but it would take many hours to do it.

It is cheaper to buy a zigbee device, I used a Sonoff, TH01 (18€) as a main thermostat all last winter, and it worked very well.

@Mariano_Colmenarejo, thanks for the response.

Cheap yes, but I’ve installed the Aeotec sensors permanently in ceilings and don’t want to install redundant sensors in rooms. I’ll hold out for a virtual thermostat solution that simply supports specifying an existing Edge temperature sensor – Zigbee, Z-Wave, WiFi, Matter, etc – and an existing Edge power switch, like the Groovy-based SmartApp I’m using today supports. Surely, this must be possible.

@nayelyz has referred to a SmartApp and SmartApp Connector in this post:

Is that a reference to a new kind of Edge-compliant SmartApp standard? If so, perhaps somebody will use it to create a virtual thermostat instead of writing the thermostat functionality into the sensor driver – which seems like a short-term workaround.

What does the “virtual thermostat solution” mean? I’m not understanding your use case correctly, can you share more details, please?

SmartApp Connectors are not related to Edge drivers. They are separate integration types.

  • The first helps you create a Cloud-to-Cloud integration and you can create virtual devices with it.
  • The second is for Hub-Connected devices (Zigbee, Z-Wave, LAN) and it runs locally.

I didn’t think it was to have a thermostat in every room

Not currently in every room, but that’s why I have sensors in every room. So that I would have the flexibility to effect a virtual thermostat in any room, or automate other actions based on the values of the sensors in the multisensor.

@nayelyz, thank you for your active, prompt and helpful assistance in these many topics relating to the conversion to Edge.

The use case is the same as this Groovy-based SmartApp which many of us rely upon:

It would seem that an automation like a virtual thermostat where you can select a temperature sensor as input and a switch (which controls a heater or air conditioner) is one of the most basic automations that a smart home hub should support – either out of the box or through a developer’s effort. SmartThings Groovy enabled the latter quite handily.

@TAustin seems to have determined what’s needed for Edge to offer what Groovy did in this post:

Because this topic is about a Zigbee Temp Sensor with added thermostat functionality and my original question was about seeing the same functionality for a Z-Wave Temp Sensor (or more generically any type of temp sensor), perhaps we should split this topic, create a new one, or continue over on a different topic.

Done :smiley:

Ok, so, I checked the SmartApp code and yes, the SmartApp Connector could handle that functionality.
Correct me if I’m wrong but, this is used to create virtual devices that mirror the values of actual thermostats so you can use it as you need in third-party integrations like Alexa and Google.
So, there are some things we need to consider:

  1. The thermostats should appear in Alexa by default (specially those certified as WWST), so why is it a “manager” needed. This is just so I can understand better
  2. You can create routines so, if a switch is turned on/off, the heater/AC does as well. I’ve seen others create virtual devices for the interaction with Alexa.
    There are some Edge drivers shared by other Community developers that could help you do this:

Note: So, this idea would be, pairing the devices normally with their corresponding Edge driver, then, if they don’t appear on Alexa or you need other special things, you could create a virtual device and mirror their behavior using Routines or Rules. The issue with this approach is that there’s a limit of 200 routines + scenes allowed per location.

  1. Just as a reference, if you create a SmartApp Connector, it wouldn’t create Edge devices (local execution).
  • In Groovy, you needed to create the DTH file and the SmartApp.
  • In SmartApp Connector, it works different. You need to create device profiles which contain the device’s metadata in the Developer Workspace, then, from the Connector you can create devices using the profileID.
    • In this case, you need to consider that it requires you host the Connector on your own.
    • Also, the execution of those devices won’t be local
1 Like

@Mariano_Colmenarejo your Virtual Thermostat driver could be used as thermostat in every room with zigbee Keen Vents. They have temperature sensor, and an actuator that can be open and closed gradually.
I am surprised that nobody approached you.
I don’t have them, as they are hard to find, but if I can get hands on them, I’ll be taking to you :smiley:

@nayelyz I’d like to throw my virtual device kit into the mix as well :slight_smile:

No virtual thermostat as of yet. If someone is interested in testing, I’d consider adding it. What would it control? Would your virtual thermostat be connected to some sort of relay? Automating a space heater might not be a great idea.


Hmm, I saw your driver the other day and was planning to play with it.

I’m interested in testing it!

Connected to a WiFi or Z-Wave wall plug. Space heater connected to the plug.

Yes and no. I’ve been doing it safely for years with the Groovy-based SmartApp I linked to above. The thermostat has an on/off control of its own, which I automate based on motion (presence) in the room.

No, the Groovy SmartApp is a thermostat on its own. There is no actual/physical thermostat involved. It pairs with a DTH device that presents the typical controls of a thermostat (that can then be controlled by voice services). It requires you to set a SmartThings temperature sensor device as the input and a SmartThings switch device as the output. It mirrors the input device’s value as its own temperature value. The SmartApp then turns on the output when the set temperature is higher than its current temperature value, and off when it reaches the set temperature.

1 Like

@nayelyz this is what I have asked like year ago. This post might bring memories

At that time this was not possible without creating SmartApp.

1 Like

Why the ceilings? You won’t get a very accurate reading up there, most temperature sensors should be at about head height because of heat rises and it will always be warmer by the ceiling.

True, so my automations take that into account with an adjustment.

Ceiling is the most central location for the motion and lux sensors’ use. There is a nice flush mount which mostly hides the device.

Ah, ok, so, this is still true:

  1. A SmartApp allows you to control different devices and create more complex automation like this one, for this you would need the SmartThings temperature sensor device as the input and a virtual switch as the output.
    The CLI allows you to create virtual devices like a switch:
smartthings virtualdevices:create-standard -N deviceName

2. Using a SmartApp connector would be pretty much the same as the Groovy integration

This is because an Edge driver cannot control other devices, only the ones connected to it. So, it depends on which integration you’d like to choose but both use the same SDK.

@BartschLabs were you able to get what you wanted?
I had a similar setup with virtual thermostats using temp. sensors and zwave switches. Now I can’t find a way to set it up without Groovy API.

1 Like

@Armen_Saghatelian, yes.

@Mariano_Colmenarejo’s new Z-Wave Sensor and Child Thermostat Mc replaces Virtual Thermostat With Device quite well. It cannot control your z-wave switch directly, but with two SharpTools rules or three SmartThings routines, it can.


Thank you very much for the suggestion @BartschLabs. Thank you for the great driver @Mariano_Colmenarejo. I tried it in one room with an Aeotec multi-sensor 6. Works like a charm :heart_eyes:. So far I set up 3 routines:

  • Turn on the heater plugin when the thermostat state is heating
  • Turn off the heater plugin when the thermostat state is “pending heat”
  • Turn off the heater plugin when the thermostat mode is “Off”

Do you think I need to cover other cases? @BartschLabs what are your routines for this?

1 Like

@Armen_Saghatelian, see my answer over in (New Release) Edge Driver Z-Wave Sensor and Child Thermostat Mc [BETA] - #22 by BartschLabs