Apps.mios Developer's Guide

From MiOS
(Difference between revisions)
Jump to: navigation, search
(Versions)
(New JSON tags)
Line 55: Line 55:
  
 
==New JSON tags==
 
==New JSON tags==
* ui5_x, ui5_y: When in root, these tags represent the device box dimensions. When in ControlGroup, these represent the control's position in the box.
+
* ui5_x, ui5_y: When in root, these tags represent the device box dimensions. 1x = 100 pixels, 1y = 24 pixels.
 +
When in ControlGroup, these represent the control's position in the box.
 
* ui5_onDashboard: If the value is "1" the device is pinned on the dashboard at creation.
 
* ui5_onDashboard: If the value is "1" the device is pinned on the dashboard at creation.
 
* ui5_inScene: If the value is "1" the device is displayed in the scene creation wizard.
 
* ui5_inScene: If the value is "1" the device is displayed in the scene creation wizard.
 
* ui5_sceneGroup: This defines how this box is displayed in the scene creation wizard.
 
* ui5_sceneGroup: This defines how this box is displayed in the scene creation wizard.

Revision as of 15:31, 10 August 2011

apps.mios.com contains a plugin creation wizard that aims to make the plugin creation process easier.

Contents

Walkthrough for creating a plugin

The plugin which will be used as an example for this walkthrough is the Elk Alarm Panel Plugin. This plugin has 8 files:

These files are for the panel itself:

  • D_ElkAlarmPanel1.xml
  • D_ElkAlarmPanel1.json

These files are for the partitions:

  • D_ElkAlarmPartition1.xml
  • D_ElkAlarmPartition1.json

These are the implementation files, which are used for both the panel and the partitions:

  • I_ElkAlarmPanel1.xml
  • L_ElkAlarmPanel1.lua

The are the service description files for the panel and the partitions:

  • S_ElkAlarmPanel1.xml
  • S_AlarmPartition2.xml


Plugin Info

Plugin Information

The fields here are self-explaining.

UPNP Data

This is the necessary information for creating the plugin device. If your plugin will have more than one device file, MiOS will use the information here to create the main plugin device. In this example, the main device is the panel device.

UPnP Data.png

Plugin Files

Here you can add, remove, edit, upload and download the files used by the plugin. This is an interface for the SVN repository where the files are stored.

File:Plugin Files

Pressing the Edit button will open the editor. For the device, service and implementation files there are wizards available for editing the files.

Versions

Releases

This is the list with all the released or pending for approval plugin versions.

Add Release

  • Platform: The target platform for the plugin. While most plugins will very likely target all the platforms, some plugins need separate versions for different platforms.
  • Compatible firmware: Some plugins require features present only in newer firmwares versions to run. Others did things that were later incorporated in MiOS, so are now obsolete. These versions must be specified here.
  • Dev, Alpha, Beta, RC: these are some of the software development phases. Only RC (Release Candidate) versions can be submitted for approval.

After the version has been added to the Releases list, RC versions can be submitted for approval. Someone from Mi Casa Verde will have a look at the plugin and check for malicious code, and test it a little to make sure that it doesn't affect the stability or proper functioning of MiOS. If everything is OK, the plugin will be approved and it will become available to install for the targeted public (selected in the Visibility drop-down).

Versions

Versions are snapshots of the plugin, i.e. how the plugin looked at a particular SVN revision. It's recommended to create a version for every milestone or development phase reached, so that you can go back to it if something went wrong in the subsequent revisions.

Publish

Here you can publish the plugin in its current state and assign it a version. If a file contains sensitive data (e.g. a PIN code) it is recommended to encrypt it.

New JSON tags

  • ui5_x, ui5_y: When in root, these tags represent the device box dimensions. 1x = 100 pixels, 1y = 24 pixels.

When in ControlGroup, these represent the control's position in the box.

  • ui5_onDashboard: If the value is "1" the device is pinned on the dashboard at creation.
  • ui5_inScene: If the value is "1" the device is displayed in the scene creation wizard.
  • ui5_sceneGroup: This defines how this box is displayed in the scene creation wizard.
Personal tools