Plugin architecture that allows you to create your own device integerations.
The Home Remote has many device integrations already built into the software. Please check the compatibility list first to see if whether you actually need a custom plugin.
The plugin interacts with the app through Device Objects. A user can have any number of Device Objects configured for the plugin. It's the Plugin's responsibility to set a the device's state through its attributes. Each attribute is a property on the Device Object. You will typically update this state information in the OnPoll event or OnConnect event. When a user tries to control a plugin device from a button click, for example, the Plugin OnChangeRequest will fire. It is here that you should send your control commands. At this point, the device object's attributes haven't been updated. The requested values sent by the button are supplied as parameters to the event.
-Set event handlers & properties on the "plugin" object
-Initialize any global variables
Useful functions available include:
|Collection of Device objects configured by the user. The plugin can provide an initial or default set by handling the OnSynchronizeDevices event. If you don't handle that event, each device can be configured manually by the user.|
|Interval in milliseconds in between consecutive polling calls.|
|Raised when app opens or resumes.|
|Raised when app closes or suspends. Typically used to close any connections that may be open.|
|Raised when PollingInterval elapses. If PollingInterval is -1 this event will only fire 1 time after connect.|
|Raised when user attempts to change a device variable/attribute from the UI.|
|Raised when user invokes the "Synchronize Devices" function from the App or Designer control menu. If you implement this handler you should populate the "plugin.Devices" array with all available devices for your plugin.|