Systems are built from hardware and software devices. Hardware devices can range from simple devices, such as relays and switches, to more sophisticated devices, such as ZigBee, Z-Wave, Arduino, and INSTEON devices. Hardware devices are physical components that need to be acquired before building a system.
When you use hardware devices, they need to connect to your host system. Most hardware devices connect to the host over USB, but devices can connect over any host interface. Serial and networked interfaces are also popular.
If a hardware device cannot connect directly to your host, it may be able to connect through an intermediary device which can connect to your host. Arduinos are great intermediary devices, as they have many available terminals for connecting both digital and analog devices, and there are 1000s of tested devices which connect to Arduinos.
In addition to hardware devices, the Virtual Wiring system also supports software devices. Some require a network, such as Terminals Sharing, Emailing and Texting devices, and others are standalone devices. We call these devices Virtual Devices. Virtual Devices are dedicated computer programs that perform useful functions such as comparison, counting, timing, and state machines. You will find Virtual Devices in the Virtual Devices library. What software devices can do will be limited by their constraints, but their benefit is that they will not impact your budget, because unlike hardware devices, they do not require the purchase of additional hardware.
If there is a device missing that you would like to see, check out our Forum to see if others have built one or to ask. Or try your hand at building one yourself. Virtual Devices are particularly easy to make, if you know a bit of Ruby.
Here are more detailed descriptions of devices currently supported by the Virtual Wiring System. Click on the individual device links for more in depth information on how to use each device with the Virtual Wiring System.
A Note about Adding Devices
All devices are added to the system by running Scripts. Using the Scripts portion of the user interface, the user clicks on a Script’s “Run” action and enters in a set of parameters to define and configure the device. These parameters differ from device to device, and they are described in more detail in the Supported Devices section above.
You find little mention of the common parameter called the "id" parameter. Because it is common to all device Scripts, we'll cover it here.
All devices have a common “id” parameter. The “id” parameter names the device, so one can identify it in the system. As a result, the “id” for each device must be unique. In addition, it's possible that one will want to reference a device for some reason. The “id” parameter is used when configuring or altering existing devices in the system.
The naming of all device “id”s must follow a particular syntax. Each “id” must begin with a letter and be composed of letters, underscores, and numbers. They are case sensitive.