Luup Secure Plugins

From MiOS
(Difference between revisions)
Jump to: navigation, search
(New page: http://findvera.com/get_plugin_json2.php?plugin=6&ap=60431 http://127.0.0.1:3480/data_request?id=lu_action&serviceId=urn:micasaverde-com:serviceId:HomeAutomationGateway1&action=CreateDevi...)
 
Line 1: Line 1:
 +
MiOS has a secure way of provisioning plugins, which will generally be done for non-free applications.  This mechanism can be used equally well for paid-for external apps that communicate with Vera, like a cell phone control, by creating an associated plugin for the app, even if the plugin doesn't do anything.  The process of creating the plugin is no different than normal.
 +
 +
A provisioned plugin contains 3 fields of data: from and to which are date/time's, and limits, which is a free form text field that can be used by the plugin or external app to determine what functionality can be provided.  These 3 fields exist both for the plugin itself, and for devices that use the plugin.  When registering your app with MiOS you specify what the default values are if a user first installs your plugin without paying for anything.  For example, consider that you have a plugin that monitors traffic conditions and costs $3/year to monitor local traffic and $6/year to monitor nation traffic and each homeowner has a 14 day free trial of the plugin, and that the limit code for the trial period is "trial" and for the $3 app is "local" and for the $6 app is "national" or $20 for national lifetime.  You would specify with MiOS that the default time period is 14 days and the default limit code is "trial".  When the user installs the app, the plugin will have provision data where 'from' is the date he installed the plugin, 'to' is 14 days later, and 'limit' is "trial".  When the customer pays the $3 or $6 the 'to' field will change to 1 year and the 'limit' will change also, when he pays $20, the 'to' field will become empty.
 +
 +
Some plugins create devices which may require provisioning of each device in addition to or instead of the provisioning for the main plugin.  For example, a cell phone app may have a price of $10 for the first cell phone and $2 for each additional one.  In this case, unlike the traffic example which only created a plugin entry, a device entry will be created for each phone and provision from/to/limit fields will exist for each phone as well as each device.  Again, there could be a free trial period which uses the 'limit' code, and the first phone could use the 'included' code, and the subsequent phones could have 'extra' limit code.  The limit codes are entirely free-form and it's up to you to decide what they mean. 
 +
 +
        {
 +
            "AllowMultiple": 1,
 +
            "Title": "Test Secure Plugin",
 +
            "Provision": {
 +
                "from": "1270155180",
 +
                "to": "1272697200",
 +
                "limits": "trial",
 +
                "Devices": [
 +
                    {
 +
                        "from": "1272697200",
 +
                        "to": "1272783600",
 +
                        "limits": "trial",
 +
                        "device_num": "2",
 +
                        "altid": "2135551212"
 +
                    },
 +
                    {
 +
                        "limits": "",
 +
                        "device_num": "8",
 +
                        "altid": "3105001000"
 +
                    }
 +
                ]
 +
            },
 +
            "Version": "0.50",
 +
            "id": 144,
 +
            "key": "def456"
 +
        }
 +
 +
 +
 
http://findvera.com/get_plugin_json2.php?plugin=6&ap=60431
 
http://findvera.com/get_plugin_json2.php?plugin=6&ap=60431
  
http://127.0.0.1:3480/data_request?id=lu_action&serviceId=urn:micasaverde-com:serviceId:HomeAutomationGateway1&action=CreateDevice&deviceType=anytype&internalID=myphone_3107765006&Description=phoneapp&PluginNum=144&Reload=1&NoDupId=1
+
http://127.0.0.1:3480/data_request?id=lu_action&serviceId=urn:micasaverde-com:serviceId:HomeAutomationGateway1&action=CreateDevice&deviceType=anytype&internalID=myphone_3107765006&Description=phoneapp&PluginNum=144&Reload=1&NoDupId=1&AesKey=abc123
 +
 
 +
http://127.0.0.1:3480/data_request?id=lu_action&serviceId=urn:micasaverde-com:serviceId:HomeAutomationGateway1&action=CreatePlugin&PluginNum=144&AesKey=abc123

Revision as of 00:46, 4 May 2010

MiOS has a secure way of provisioning plugins, which will generally be done for non-free applications. This mechanism can be used equally well for paid-for external apps that communicate with Vera, like a cell phone control, by creating an associated plugin for the app, even if the plugin doesn't do anything. The process of creating the plugin is no different than normal.

A provisioned plugin contains 3 fields of data: from and to which are date/time's, and limits, which is a free form text field that can be used by the plugin or external app to determine what functionality can be provided. These 3 fields exist both for the plugin itself, and for devices that use the plugin. When registering your app with MiOS you specify what the default values are if a user first installs your plugin without paying for anything. For example, consider that you have a plugin that monitors traffic conditions and costs $3/year to monitor local traffic and $6/year to monitor nation traffic and each homeowner has a 14 day free trial of the plugin, and that the limit code for the trial period is "trial" and for the $3 app is "local" and for the $6 app is "national" or $20 for national lifetime. You would specify with MiOS that the default time period is 14 days and the default limit code is "trial". When the user installs the app, the plugin will have provision data where 'from' is the date he installed the plugin, 'to' is 14 days later, and 'limit' is "trial". When the customer pays the $3 or $6 the 'to' field will change to 1 year and the 'limit' will change also, when he pays $20, the 'to' field will become empty.

Some plugins create devices which may require provisioning of each device in addition to or instead of the provisioning for the main plugin. For example, a cell phone app may have a price of $10 for the first cell phone and $2 for each additional one. In this case, unlike the traffic example which only created a plugin entry, a device entry will be created for each phone and provision from/to/limit fields will exist for each phone as well as each device. Again, there could be a free trial period which uses the 'limit' code, and the first phone could use the 'included' code, and the subsequent phones could have 'extra' limit code. The limit codes are entirely free-form and it's up to you to decide what they mean.

       {
           "AllowMultiple": 1,
           "Title": "Test Secure Plugin",
           "Provision": {
               "from": "1270155180",
               "to": "1272697200",
               "limits": "trial",
               "Devices": [
                   {
                       "from": "1272697200",
                       "to": "1272783600",
                       "limits": "trial",
                       "device_num": "2",
                       "altid": "2135551212" 
                   },
                   {
                       "limits": "",
                       "device_num": "8",
                       "altid": "3105001000" 
                   } 
               ] 
           },
           "Version": "0.50",
           "id": 144,
           "key": "def456" 
       } 


http://findvera.com/get_plugin_json2.php?plugin=6&ap=60431

http://127.0.0.1:3480/data_request?id=lu_action&serviceId=urn:micasaverde-com:serviceId:HomeAutomationGateway1&action=CreateDevice&deviceType=anytype&internalID=myphone_3107765006&Description=phoneapp&PluginNum=144&Reload=1&NoDupId=1&AesKey=abc123

http://127.0.0.1:3480/data_request?id=lu_action&serviceId=urn:micasaverde-com:serviceId:HomeAutomationGateway1&action=CreatePlugin&PluginNum=144&AesKey=abc123

Personal tools