How to create a Virtual Switch in SmartThings

This is a step by step guide on how to create a Virtual Switch on SmartThings. This could be useful to trigger certen apps with IFTTT or custom integration.

  • Log in to SmartThings IDE
  • Go to “My Device Type” and create a new device type by clicking on “+ New SmartDevice”
  • Write the name “Virtual Switch” and click Create
  • Paste this code

/**
 *  Virtual Switch
 *
 *  Copyright 2014 Juan Risso
 *
 *  Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
 *  in compliance with the License. You may obtain a copy of the License at:
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 *  Unless required by applicable law or agreed to in writing, software distributed under the License is distributed
 *  on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License
 *  for the specific language governing permissions and limitations under the License.
 *
 */
metadata {
        definition (name: "Virtual Switch", namespace: "juano2310", author: "Juan Risso") {
        capability "Switch"
        capability "Refresh"        
    }

	// simulator metadata
	simulator {
	}

	// UI tile definitions
	tiles {
		standardTile("button", "device.switch", width: 2, height: 2, canChangeIcon: false) {
			state "off", label: 'Off', action: "switch.on", icon: "st.Kids.kid10", backgroundColor: "#ffffff", nextState: "on"
			state "on", label: 'On', action: "switch.off", icon: "st.Kids.kid10", backgroundColor: "#79b821", nextState: "off"
		}
		standardTile("refresh", "device.switch", inactiveLabel: false, decoration: "flat") {
			state "default", label:'', action:"refresh.refresh", icon:"st.secondary.refresh"
		}        
		main "button"
		details(["button", "refresh"])
	}
}

def parse(String description) {
}

def on() {
	sendEvent(name: "switch", value: "on")
}

def off() {
	sendEvent(name: "switch", value: "off")
}

  • Go to “My Devices” and create a new device by clicking on “+ New Device”
  • Write the name “Virtual Switch”, Device Network “2323”, select “Virtual Switch” for Type and click Create
  • Now if you go to the app you should be able to see the newly created switch. You can use this to trigger songs or playlist on Sonos with IFTTT for example 🙂

Enjoy!