supervisor/API.md
2017-07-12 01:38:15 +02:00

6.4 KiB

HassIO Server

HassIO REST API

Interface for HomeAssistant to control things from supervisor.

On error:

{
    "result": "error",
    "message": ""
}

On success

{
    "result": "ok",
    "data": { }
}

HassIO

  • GET /supervisor/ping

  • GET /supervisor/info

The addons from addons are only installed one.

{
    "version": "INSTALL_VERSION",
    "last_version": "LAST_VERSION",
    "arch": "armhf|aarch64|i386|amd64",
    "beta_channel": "true|false",
    "timezone": "TIMEZONE",
    "addons": [
        {
            "name": "xy bla",
            "slug": "xy",
            "description": "description",
            "arch": ["armhf", "aarch64", "i386", "amd64"],
            "repository": "12345678|null",
            "version": "LAST_VERSION",
            "installed": "INSTALL_VERSION",
            "detached": "bool",
            "build": "bool",
            "url": "null|url"
        }
    ],
    "addons_repositories": [
        "REPO_URL"
    ]
}
  • GET /supervisor/addons

Get all available addons. Will be delete soon. Look to /addons

  • POST /supervisor/update Optional:
{
    "version": "VERSION"
}
  • POST /supervisor/options
{
    "beta_channel": "true|false",
    "timezone": "TIMEZONE",
    "addons_repositories": [
        "REPO_URL"
    ]
}
  • POST /supervisor/reload

Reload addons/version.

  • GET /supervisor/logs

Output the raw docker log

Security

  • GET /security/info
{
    "initialize": "bool",
    "totp": "bool"
}
  • POST /security/options
{
    "password": "xy"
}
  • POST /security/totp
{
    "password": "xy"
}

Return QR-Code

  • POST /security/session
{
    "password": "xy",
    "totp": "null|123456"
}

Backup/Snapshot

  • GET /snapshots
{
    "snapshots": [
        {
            "slug": "SLUG",
            "date": "ISO",
            "name": "Custom name"
        }
    ]
}
  • POST /snapshots/reload

  • POST /snapshots/new/full

{
    "name": "Optional"
}
  • POST /snapshots/new/partial
{
    "name": "Optional",
    "addons": ["ADDON_SLUG"],
    "folders": ["FOLDER_NAME"]
}
  • POST /snapshots/reload

  • GET /snapshots/{slug}/info

{
    "slug": "SNAPSHOT ID",
    "type": "full|partial",
    "name": "custom snapshot name / description",
    "date": "ISO",
    "size": "SIZE_IN_MB",
    "homeassistant": {
      "version": "INSTALLED_HASS_VERSION",
      "devices": []
    },
    "addons": [
        {
            "slug": "ADDON_SLUG",
            "name": "NAME",
            "version": "INSTALLED_VERSION"
        }
    ],
    "repositories": ["URL"],
    "folders": ["NAME"]
}
  • POST /snapshots/{slug}/remove

  • POST /snapshots/{slug}/restore/full

  • POST /snapshots/{slug}/restore/partial

{
    "homeassistant": "bool",
    "addons": ["ADDON_SLUG"],
    "folders": ["FOLDER_NAME"]
}

Host

  • POST /host/reload

  • POST /host/shutdown

  • POST /host/reboot

  • GET /host/info See HostControl info command.

{
    "type": "",
    "version": "",
    "last_version": "",
    "features": ["shutdown", "reboot", "update", "network_info", "network_control"],
    "hostname": "",
    "os": ""
}
  • POST /host/update Optional:
{
    "version": "VERSION"
}

Network

  • GET /network/info
{
    "hostname": ""
}
  • POST /network/options
{
    "hostname": "",
    "mode": "dhcp|fixed",
    "ssid": "",
    "ip": "",
    "netmask": "",
    "gateway": ""
}

HomeAssistant

  • GET /homeassistant/info
{
    "version": "INSTALL_VERSION",
    "last_version": "LAST_VERSION",
    "devices": [""],
    "image": "str",
    "custom": "bool -> if custom image"
}
  • POST /homeassistant/update Optional:
{
    "version": "VERSION"
}
  • GET /homeassistant/logs

Output the raw docker log

  • POST /homeassistant/restart

  • POST /homeassistant/options

{
    "devices": [],
    "image": "Optional|null",
    "last_version": "Optional for custom image|null"
}

Image with null and last_version with null reset this options.

REST API addons

  • GET /addons

Get all available addons

{
    "addons": [
        {
            "name": "xy bla",
            "slug": "xy",
            "description": "description",
            "arch": ["armhf", "aarch64", "i386", "amd64"],
            "repository": "core|local|REP_ID",
            "version": "LAST_VERSION",
            "installed": "none|INSTALL_VERSION",
            "detached": "bool",
            "build": "bool",
            "url": "null|url"
        }
    ],
    "repositories": [
        {
            "slug": "12345678",
            "name": "Repitory Name|unknown",
            "source": "URL_OF_REPOSITORY",
            "url": "WEBSITE|REPOSITORY",
            "maintainer": "BLA BLU <fla@dld.ch>|unknown"
        }
    ]
}
  • POST /addons/reload

  • GET /addons/{addon}/info

{
    "name": "xy bla",
    "description": "description",
    "auto_update": "bool",
    "url": "null|url of addon",
    "detached": "bool",
    "repository": "12345678|null",
    "version": "null|VERSION_INSTALLED",
    "last_version": "LAST_VERSION",
    "state": "none|started|stopped",
    "boot": "auto|manual",
    "build": "bool",
    "options": "{}",
    "network": "{}|null",
    "host_network": "bool"
}
  • POST /addons/{addon}/options
{
    "boot": "auto|manual",
    "auto_update": "bool",
    "network": {
      "CONTAINER": "port|[ip, port]"
    },
    "options": {},
}

For reset custom network settings, set it null.

  • POST /addons/{addon}/start

  • POST /addons/{addon}/stop

  • POST /addons/{addon}/install Optional:

{
    "version": "VERSION"
}
  • POST /addons/{addon}/uninstall

  • POST /addons/{addon}/update Optional:

{
    "version": "VERSION"
}
  • GET /addons/{addon}/logs

Output the raw docker log

  • POST /addons/{addon}/restart

Host Control

Communicate over unix socket with a host daemon.

  • commands
# info
-> {'type', 'version', 'last_version', 'features', 'hostname'}
# reboot
# shutdown
# host-update [v]

# hostname xy

# network info
-> {}
# network wlan ssd xy
# network wlan password xy
# network int ip xy
# network int netmask xy
# network int route xy

features:

  • shutdown
  • reboot
  • update
  • hostname
  • network_info
  • network_control

Answer:

{}|OK|ERROR|WRONG
  • {}: json
  • OK: call was successfully
  • ERROR: error on call
  • WRONG: not supported