diff --git a/addons/index.html b/addons/index.html index bf345702c5..2cd68c8d83 100644 --- a/addons/index.html +++ b/addons/index.html @@ -67,7 +67,7 @@
-

Add-ons are extensions for your Home Assistant installation.

+

Add-ons for Hass.io allows the user to extend the functionality around Home Assistant. This can be running an application that Home Assistant can integrate with (like an MQTT broker) or to share the configuration via Samba for easy editing from other computers. Add-ons can be configured via the Hass.io panel in Home Assistant.

diff --git a/addons/lets_encrypt/index.html b/addons/lets_encrypt/index.html index 6d60fce8c9..574cd6522a 100644 --- a/addons/lets_encrypt/index.html +++ b/addons/lets_encrypt/index.html @@ -92,16 +92,18 @@ diff --git a/addons/mosquitto/index.html b/addons/mosquitto/index.html index e7b5bc6bfc..076d67b0c8 100644 --- a/addons/mosquitto/index.html +++ b/addons/mosquitto/index.html @@ -98,16 +98,18 @@ diff --git a/addons/samba/index.html b/addons/samba/index.html index b69acec3bd..61e0d9b0a9 100644 --- a/addons/samba/index.html +++ b/addons/samba/index.html @@ -102,16 +102,18 @@ diff --git a/addons/ssh/index.html b/addons/ssh/index.html index a35bd2f103..8eee4bba11 100644 --- a/addons/ssh/index.html +++ b/addons/ssh/index.html @@ -92,16 +92,18 @@ diff --git a/atom.xml b/atom.xml index e9e46b0e85..2ae2d5b4ec 100644 --- a/atom.xml +++ b/atom.xml @@ -4,7 +4,7 @@ <![CDATA[Home Assistant]]> - 2017-05-05T05:41:24+00:00 + 2017-05-05T06:15:13+00:00 https://home-assistant.io/ diff --git a/blog/categories/announcements/atom.xml b/blog/categories/announcements/atom.xml index 81987d5ca4..2d98672b6a 100644 --- a/blog/categories/announcements/atom.xml +++ b/blog/categories/announcements/atom.xml @@ -4,7 +4,7 @@ <![CDATA[Category: Announcements | Home Assistant]]> - 2017-05-05T05:41:24+00:00 + 2017-05-05T06:15:13+00:00 https://home-assistant.io/ diff --git a/blog/categories/community/atom.xml b/blog/categories/community/atom.xml index e191332e92..cc85718f5d 100644 --- a/blog/categories/community/atom.xml +++ b/blog/categories/community/atom.xml @@ -4,7 +4,7 @@ <![CDATA[Category: Community | Home Assistant]]> - 2017-05-05T05:41:24+00:00 + 2017-05-05T06:15:13+00:00 https://home-assistant.io/ diff --git a/blog/categories/device-tracking/atom.xml b/blog/categories/device-tracking/atom.xml index 553ad5b24c..5bc090b7dd 100644 --- a/blog/categories/device-tracking/atom.xml +++ b/blog/categories/device-tracking/atom.xml @@ -4,7 +4,7 @@ <![CDATA[Category: Device-Tracking | Home Assistant]]> - 2017-05-05T05:41:24+00:00 + 2017-05-05T06:15:13+00:00 https://home-assistant.io/ diff --git a/blog/categories/esp8266/atom.xml b/blog/categories/esp8266/atom.xml index e109dcf288..b6c5202493 100644 --- a/blog/categories/esp8266/atom.xml +++ b/blog/categories/esp8266/atom.xml @@ -4,7 +4,7 @@ <![CDATA[Category: ESP8266 | Home Assistant]]> - 2017-05-05T05:41:24+00:00 + 2017-05-05T06:15:13+00:00 https://home-assistant.io/ diff --git a/blog/categories/how-to/atom.xml b/blog/categories/how-to/atom.xml index 0bf283149b..edb36c59f9 100644 --- a/blog/categories/how-to/atom.xml +++ b/blog/categories/how-to/atom.xml @@ -4,7 +4,7 @@ <![CDATA[Category: How-To | Home Assistant]]> - 2017-05-05T05:41:24+00:00 + 2017-05-05T06:15:13+00:00 https://home-assistant.io/ diff --git a/blog/categories/ibeacons/atom.xml b/blog/categories/ibeacons/atom.xml index 9a4266026a..9a5674c440 100644 --- a/blog/categories/ibeacons/atom.xml +++ b/blog/categories/ibeacons/atom.xml @@ -4,7 +4,7 @@ <![CDATA[Category: iBeacons | Home Assistant]]> - 2017-05-05T05:41:24+00:00 + 2017-05-05T06:15:13+00:00 https://home-assistant.io/ diff --git a/blog/categories/internet-of-things/atom.xml b/blog/categories/internet-of-things/atom.xml index f91d5de2e9..0fea6f6bda 100644 --- a/blog/categories/internet-of-things/atom.xml +++ b/blog/categories/internet-of-things/atom.xml @@ -4,7 +4,7 @@ <![CDATA[Category: Internet-of-Things | Home Assistant]]> - 2017-05-05T05:41:24+00:00 + 2017-05-05T06:15:13+00:00 https://home-assistant.io/ diff --git a/blog/categories/iot-data/atom.xml b/blog/categories/iot-data/atom.xml index ecfb04e562..5ee3f4b230 100644 --- a/blog/categories/iot-data/atom.xml +++ b/blog/categories/iot-data/atom.xml @@ -4,7 +4,7 @@ <![CDATA[Category: IoT-Data | Home Assistant]]> - 2017-05-05T05:41:24+00:00 + 2017-05-05T06:15:13+00:00 https://home-assistant.io/ diff --git a/blog/categories/merchandise/atom.xml b/blog/categories/merchandise/atom.xml index c664d3662b..3942a0c294 100644 --- a/blog/categories/merchandise/atom.xml +++ b/blog/categories/merchandise/atom.xml @@ -4,7 +4,7 @@ <![CDATA[Category: Merchandise | Home Assistant]]> - 2017-05-05T05:41:24+00:00 + 2017-05-05T06:15:13+00:00 https://home-assistant.io/ diff --git a/blog/categories/micropython/atom.xml b/blog/categories/micropython/atom.xml index e2f80dba51..a9f747bb8c 100644 --- a/blog/categories/micropython/atom.xml +++ b/blog/categories/micropython/atom.xml @@ -4,7 +4,7 @@ <![CDATA[Category: Micropython | Home Assistant]]> - 2017-05-05T05:41:24+00:00 + 2017-05-05T06:15:13+00:00 https://home-assistant.io/ diff --git a/blog/categories/mqtt/atom.xml b/blog/categories/mqtt/atom.xml index df0e829652..241835d132 100644 --- a/blog/categories/mqtt/atom.xml +++ b/blog/categories/mqtt/atom.xml @@ -4,7 +4,7 @@ <![CDATA[Category: MQTT | Home Assistant]]> - 2017-05-05T05:41:24+00:00 + 2017-05-05T06:15:13+00:00 https://home-assistant.io/ diff --git a/blog/categories/organisation/atom.xml b/blog/categories/organisation/atom.xml index d5f91169c9..af1eb4bf9e 100644 --- a/blog/categories/organisation/atom.xml +++ b/blog/categories/organisation/atom.xml @@ -4,7 +4,7 @@ <![CDATA[Category: Organisation | Home Assistant]]> - 2017-05-05T05:41:24+00:00 + 2017-05-05T06:15:13+00:00 https://home-assistant.io/ diff --git a/blog/categories/owntracks/atom.xml b/blog/categories/owntracks/atom.xml index 94aebe20d5..54bef88fcf 100644 --- a/blog/categories/owntracks/atom.xml +++ b/blog/categories/owntracks/atom.xml @@ -4,7 +4,7 @@ <![CDATA[Category: OwnTracks | Home Assistant]]> - 2017-05-05T05:41:24+00:00 + 2017-05-05T06:15:13+00:00 https://home-assistant.io/ diff --git a/blog/categories/presence-detection/atom.xml b/blog/categories/presence-detection/atom.xml index d034fda03a..f0c03b00c8 100644 --- a/blog/categories/presence-detection/atom.xml +++ b/blog/categories/presence-detection/atom.xml @@ -4,7 +4,7 @@ <![CDATA[Category: Presence-Detection | Home Assistant]]> - 2017-05-05T05:41:24+00:00 + 2017-05-05T06:15:13+00:00 https://home-assistant.io/ diff --git a/blog/categories/public-service-announcement/atom.xml b/blog/categories/public-service-announcement/atom.xml index ec94212cac..5e2d51da4e 100644 --- a/blog/categories/public-service-announcement/atom.xml +++ b/blog/categories/public-service-announcement/atom.xml @@ -4,7 +4,7 @@ <![CDATA[Category: Public-Service-Announcement | Home Assistant]]> - 2017-05-05T05:41:24+00:00 + 2017-05-05T06:15:13+00:00 https://home-assistant.io/ diff --git a/blog/categories/release-notes/atom.xml b/blog/categories/release-notes/atom.xml index 3737ff7f3b..65c39052b0 100644 --- a/blog/categories/release-notes/atom.xml +++ b/blog/categories/release-notes/atom.xml @@ -4,7 +4,7 @@ <![CDATA[Category: Release-Notes | Home Assistant]]> - 2017-05-05T05:41:24+00:00 + 2017-05-05T06:15:13+00:00 https://home-assistant.io/ diff --git a/blog/categories/survey/atom.xml b/blog/categories/survey/atom.xml index 200203cb9a..8c78dc625a 100644 --- a/blog/categories/survey/atom.xml +++ b/blog/categories/survey/atom.xml @@ -4,7 +4,7 @@ <![CDATA[Category: Survey | Home Assistant]]> - 2017-05-05T05:41:24+00:00 + 2017-05-05T06:15:13+00:00 https://home-assistant.io/ diff --git a/blog/categories/talks/atom.xml b/blog/categories/talks/atom.xml index 556b1bdaa9..58107fe45b 100644 --- a/blog/categories/talks/atom.xml +++ b/blog/categories/talks/atom.xml @@ -4,7 +4,7 @@ <![CDATA[Category: Talks | Home Assistant]]> - 2017-05-05T05:41:24+00:00 + 2017-05-05T06:15:13+00:00 https://home-assistant.io/ diff --git a/blog/categories/technology/atom.xml b/blog/categories/technology/atom.xml index 94ac9d53ff..d66e00a275 100644 --- a/blog/categories/technology/atom.xml +++ b/blog/categories/technology/atom.xml @@ -4,7 +4,7 @@ <![CDATA[Category: Technology | Home Assistant]]> - 2017-05-05T05:41:24+00:00 + 2017-05-05T06:15:13+00:00 https://home-assistant.io/ diff --git a/blog/categories/user-stories/atom.xml b/blog/categories/user-stories/atom.xml index a73fed46ee..60a0ef3e42 100644 --- a/blog/categories/user-stories/atom.xml +++ b/blog/categories/user-stories/atom.xml @@ -4,7 +4,7 @@ <![CDATA[Category: User-Stories | Home Assistant]]> - 2017-05-05T05:41:24+00:00 + 2017-05-05T06:15:13+00:00 https://home-assistant.io/ diff --git a/blog/categories/video/atom.xml b/blog/categories/video/atom.xml index f9412eb251..29a73ae4ab 100644 --- a/blog/categories/video/atom.xml +++ b/blog/categories/video/atom.xml @@ -4,7 +4,7 @@ <![CDATA[Category: Video | Home Assistant]]> - 2017-05-05T05:41:24+00:00 + 2017-05-05T06:15:13+00:00 https://home-assistant.io/ diff --git a/blog/categories/website/atom.xml b/blog/categories/website/atom.xml index 59f2a44a96..a620b8c92e 100644 --- a/blog/categories/website/atom.xml +++ b/blog/categories/website/atom.xml @@ -4,7 +4,7 @@ <![CDATA[Category: Website | Home Assistant]]> - 2017-05-05T05:41:24+00:00 + 2017-05-05T06:15:13+00:00 https://home-assistant.io/ diff --git a/hassio/create_hassio_addon/index.html b/hassio/addon_config/index.html similarity index 79% rename from hassio/create_hassio_addon/index.html rename to hassio/addon_config/index.html index fd687cae4b..1d58bb85f6 100644 --- a/hassio/create_hassio_addon/index.html +++ b/hassio/addon_config/index.html @@ -6,21 +6,21 @@ - Create an add-on for Hass.io - Home Assistant + Add-On Configuration - Home Assistant - + - + - + - + @@ -60,28 +60,49 @@
- +

- Create an Add-on for Hass.io + Add-On Configuration


-

Add-ons are docker container they run a script and do some things. User are able to set a add-on specific options.

-

Add-on folder

-
addon_name:
+  

Each add-on is stored in a folder. The file structure looks like this:

+
addon_name/
   Dockerfile
   config.json
   run.sh
 
-

All add-ons are based on Alpine Linux 3.5. You can use FROM %%BASE_IMAGE%% inside your docker file to build the right arch or for automatic build with our scripts.

-

Your Docker need also a env variable VERSION with the version of the add-on. With our build system include this line:

-
ENV VERSION %%VERSION%%
+

Add-on script

+

As with every Docker container, you will need a script to run when the container is started. A user might run many add-ons, so it is encouraged to try to stick to Bash scripts if you’re doing simple things.

+

When developing your script:

+
    +
  • /data is a volume for persistent storage.
  • +
  • /data/options.json contains the user configuration. You can use jq inside your shell script to parse this data.
  • +
+
echo '{ "target": "beer" }' | jq -r ".target"
 
-

As a user might run many add-ons, it is encouraged to try to stick to Bash scripts if you’re doing simple things.

-

Add-on config

+

Add-on Docker file

+

All add-ons are based on Alpine Linux 3.5. Hass.io will automatically substitute the right base image based on the machine architecture. The Dockerfile is also required to have a VERSION environment variable which we will substitute with the version of the add-on.

+
FROM %%BASE_IMAGE%%
+
+ENV VERSION %%VERSION%%
+ENV LANG C.UTF-8
+
+# Install requirements for add-on
+RUN apk add --no-cache jq
+
+# Copy data for add-on
+COPY run.sh /
+RUN chmod a+x /run.sh
+
+CMD [ "/run.sh" ]
+
+
+

Add-on config

+

The config for an add-on is stored in config.json.

{
   "name": "xy",
   "version": "1.2",
@@ -100,7 +121,7 @@
 

Options / Schema

-

The options dict have all available options with default value. If you want to set a value to requered and need to be set from user before it start the addon, set it to null. We support arrays for single deeps.

+

The options dict contains all available options and their default value. Set the default value to null if the value is required to be given by the user before the add-on can start. Only non-nested arrays are supported.

{
   "message": "custom things",
   "logins": [
@@ -112,7 +133,7 @@
 }
 
-

The schmema look like the options but describe how we should validate the user input. For example above:

+

The schema looks like options but describes how we should validate the user input. For example:

{
   "message": "str",
   "logins": [
@@ -132,10 +153,6 @@
   
  • email
  • url
  • -

    SSL

    -

    Default you can use fullchain.pem and privkey.pem from /ssl for you stuff. Your SSL addon should also create default this files.

    -

    Need to know

    -

    /data is a volume with a persistant store. /data/options.json have the user config inside. You can use jq inside shell script to parse this data.