Here is an Edge driver that will enable end-users to create virtual devices that run locally on-hub.
UPDATED JULY 2023…
Features:
- Supports the following virtual device types:
A/C, air quality, alarm, Alexa switch, battery, CO2 level, contact, door, energy, fan, garage door, illuminance, Level/dimmer-only, lock, light (including RGBW), momentary button/doorbell,
motion, panic, presence, refrigerator, smoke detector, sound pressure, sound sensor, switch, switch level/dimmer, temp/humidity, TV, thermostat, video camera, water sensor, window shade
- Create any number of virtual devices
- Easy and fast to use: No coding or CLI required
- Enables you to create 100% local automations with virtual devices
- See how many devices you’ve created of a given type (inventory)
- Devices include additional controls and features beyond what is available through CLI-created virtual devices
- Several virtual device types include a switch that mirrors controls - useful for Alexa triggers
- Several virtual devices types include custom controls to set device states
- Ability to select dashboard icon for select devices (e.g., switch, contact, motion)
- Momentary button includes both switch and contact, plus preference settings to control on/off/revert behavior, and delay value
- Motion includes optional auto-revert back to inactive after given delay value
- Shade device includes hidden contactSensor for triggering Alexa routines
Note for those wanting to trigger Alexa or have Alexa trigger SmartThings: Use the AlexaSwitch device, with which you can create a linked contact device from the device Settings screen, which can be used for reliable Alexa triggering. (The former method of using a combined switch+contact device seems to no longer work reliably). Icon preferences can also be chosen in device Settings. For more information see this post. In summary: use the linked contact device to trigger Alexa routines ('when this happens…'). Control the contact state with the linked switch. You can use the switch in Alexa routine ‘actions’.
- I have an alternate driver option available for creating Alexa triggers that uses a different approach. See this post for details.
Known issues
- Alex integrations: Alexa no longer seems to like devices with combo devices (e.g. switch+contact), so use the AlexaSwitch device type to create a linked contact device for more reliable Alexa triggering. See Note for those wanting to trigger Alexa… above.
More help
@Buds_Smart_Home has done an instructional video on virtual switches that references this driver (February 2024) that is quite helpful.
I’m happy to expand the list of virtual device types supported based on community needs.
Please leave your feedback here!
Instructions:
-
Use this channel invitation link to load the driver to your hub: Samsung account
Enroll your hub, then display available drivers and choose Virtual Devices V2 -
Once the driver has been installed to your hub, go to your mobile app and do an Add device / Scan for nearby devices. This will result in the creation of a new device called vEdge Creator V2.94 to be found in the room where your SmartThings hub device is located.
-
Open the new creator device to the device Controls screen. Set the quantity of devices you want to create of a given type, then select the device type and your device(s) will be created in the room where your SmartThings hub device is located…
Upgrading from prior versions:
- If the existing creator device is not working with the updated driver, the creator device can be deleted and recreated without affecting existing virtual devices. Ensure the latest driver is installed to your hub by checking the driver version. Once the updated driver is on your hub, you can delete the existing creator device, then perform an Add device / Scan for nearby devices, and a new creator device will be created.
Current Driver Version as of 8/1/23: ** 2023-08-01T15:09:45.521809442**
If you have any problems, it would be helpful to get a log output, but for that you will need the CLI:
smartthings edge:drivers:installed
smartthings edge:drivers:logcat <driverID> --hub-address=<hub ip addr>