Publishing to the web

Files needed

app.json

This file contains a configuration of the WebUI for the users. It allows me as a developer to set the variable names and how the guide for creating the app will look for the user when configuring the app.

{
  "author": "IoT Open",
  "licence": "MIT",
  "input": {
    "actuator_function": {
      "type": "single_function_selector",
      "name": "Controlled functions",
      "description": "This function that is turned to on when app is triggered."
    },
    "trigger_function": {
      "type": "single_function_selector",
      "name": "Trigger function",
      "description": "The door that will trigger the light to turn on."
    },
    "timeout": {
      "type": "number",
      "name": "Light on time",
      "description": "The time that the control function will be on before turning off again in minutes.",
	  "default": "10"
    }
  },
  "guide": [
    {
      "id": "stage_1",
      "title": "Function selection",
      "description": "Set the functions you want to use.",
      "input_fields": [
        "trigger_function",
        "actuator_function"
      ]
    },
	{
	  "id": "stage_2",
	  "title": "Timeout settings",
	  "description": "",
	  "input_fields": [
		"timeout"
	  ]
	}
  ]
}

The above json will generate two pages of configuration. One page for configuring the functions, and a second page for the user to set the timeout. The interface will also have more pages to set installation, name, and a summary to confirm all parameters before saving.

app.lua

This file contains all code as shown on the previous page.

Uploading and setting version name

Create a new app

I use the edge-app page to create a new app. The apps have some basic data that needs to be added by the user for the indexing to work correctly.

Upload

When an app has been created we can create a new version for it in the web-interface. This is done in the Versions tab on the edit page for the created app. Here I just select the two files created above and press upload to let the server handle the rest.

Set a name for this version

All uploaded code gets a hash as identifier, it is possible to change this into a more user-friendly name. I always use SemVeropen in new window for my releases and this is what I do here as well. First release is then called v1.0.0.