Software Overview  |  Sitemap  |  Downloads  |  Developers  |  Forums

Virtual Wiring System Software

The Virtual Wiring software:

  • Uses widely available 3rd party components (Raspberry Pis, Arduinos, XBees, Z-Wave devices, INSTEON Devices ...)

  • Lets you build robust systems in minutes

  • Provides many built-in devices (timers, state machines, logic gates, emailers, texters, comparators, alarm controllers, ...)

  • Lets you "wire" things together schematically from a web page

  • Is controllable via the web, smartphone, email, and/or text messaging

  • Notifies you via the web, smartphone, email, and/or text messaging

  • Is fully configurable from the web

  • Supports thousands of different devices and many device families (USB, ZigBee, Z-Wave, Arduino, INSTEON)

  • Is written in one of today's most popular programming languages - Ruby (but you don't have to know that unless you like to program)

  • Has web and Ruby APIs for customization

  • Is free for non-commercial use

The Virtual Wiring System allows you to build alarm systems, remote-controlled electrical sockets (really remote, like 1/2 way around the world), timers, remote-controlled robots, automation systems for homes and buildings, and just about anything you can think of that's computer controlled. And everything is controllable and monitorable using text messages, smartphones, and/or web interfaces.

The Virtual Wiring software supports many commonly available device families (serial, INSTEON, USB, ZigBee, and Z-Wave for example), as well as switches, lights, relays, timers, logic functions, state machines, email devices, thermostats, and Arduino systems. Support for other devices is under development, so be sure to check the Forum Announcements for news.

Our software runs on *nix based systems (we've tested with Mac OSX, PC Linuxes, and Linux on Raspberry Pis, BeagleBone Blacks and Plug Computers). If you don't have an *nix system, a Raspberry Pi can be bought on Amazon for less than $50 (last we checked), or you can run Linux in a Virtual Box on a Windows system. You can operate the system from any web browser (Windows, Mac, Linux, Android, iPhone, iPad, etc.).


The Virtual Wiring software operates at many levels, depending on how much customization you need. You can monitor and control devices from the web, or you can build intelligent systems that run themselves.

Many systems are built by just adding Devices to a system. If, for example, you are looking to control and monitor an AC outlet or a light, adding a Device into the system is all you need to do. Here, we have added an XBee Smart Plug Device. It's a wireless device which turns a built-in AC outlet on and off. It has sensors for monitoring the current drawn through the outlet and ambient light.

Controlling and Monitoring an XBee Smart Plug AC Outlet from a Web Browser
Smart Plug Screen Shot

You can also monitor Virtual Wiring devices using our graphing software.

Smart Plug AC Outlet Values
Graph of Smart Plug Values

If you wish to have a Device control and monitor another Device, you can "wire" them together using Virtual Wires. Here, we have added an Arduino device to the system above. Arduinos are small computers with many inputs and outputs. Here, the input value on an Arduino pin is controlling our Smart Plug. If the Arduino senses an "on" value at its input, the Smart Plug will turn on its AC outlet.

Arduino Control of an XBee Smart Plug
Arduino Smart Plug Wire Screen Shot

If you need more customization, you can build customized State Machines or create your own Virtual Devices and "wire" these into your system. We have an easy to use language for designing state machines, and you can create Virtual Devices that do most anything. Virtual Devices are Devices you write yourself in Ruby, a popular web programming language. Looking for a customized controller that knows the temperature in London and when the sun is going down in New Hampshire? Virtual Devices are your answer.

A State Machine Playing the Animal Game
Explorer Screen Shot

If you create 2 or more Virtually Wired Systems, you can "wire" these together with Terminals Sharing Devices. Virtually Wired Systems can be wired together and operate as one big System.

Getting Started

The system is designed to make your job easy, modeled on a wiring paradigm. It has a web interface, so you can run it from any device with a web browser (Windows, Mac, Linux, Android, and iOS devices).

Building a system is straightforward:

  • Decide which host system you want to run on

  • Download and install our software on your host

  • Decide what you want to control/monitor and select the Devices you need from our Devices page

  • Install, configure, control, and monitor your devices from the web

To get familiar with the Virtual Wiring system, read through our Tour. Try our Tutorials page to learn how to build some systems.

If you want to get going quickly, you can build a system from our library of "Recipes". These are smaller systems which you can build with little or no parts and running a simple Script.

You can build some larger, more complex systems from our Projects area. The Projects area has descriptions, parts suggestions, Scripts, and ideas for larger systems.

If you want a customized system, you can build one from scratch or modify a Recipe or Project.

Are you a developer and wish to create your own Devices or Device Scripts? Click here to see our Developers section.

Catalina Computing, LLC.

Copyright © Catalina Computing, LLC. (2013-2018)

Page last updated: Fri Feb 3 21:53:06 2017 (UTC)