Skip to content

How to extend zautomation

Gregory Sitnin edited this page Oct 22, 2013 · 2 revisions

In case you want to extend ZAutomation you should author a module which (optionally) can register and expose some virtual devices and their widgets.

Automation modules are intended to incapsulate functionality of some kind, bind to the Event Bus to emit and response to events. Also only a module is able to spawn one or more virtual device instances.

Virtual device is an instance of a VirtualDevice class' descendant which exposes set of metrics and commands (according to it's type/subtype). Virtual devices are the only runtime instances which is controllable and observable throuh the ZAutomation API.

Widgets is a client-side entities which knows how exactly interact with the Virtual Devices through the ZAutomation API. Every widget is aware of specific VDev type/subtype metrics and commands and provides human-reachable UI to control VDevs.

Customers are able to create their own modules, vdevs and widgets as long as use bundled ones.

For further reading:

Clone this wiki locally