Skip to main content

Getting started

This document describes the local HTTP API exposed by Plugwise hubs. It is intended for developers and technical integrators who want to retrieve device data, inspect the system model, and control supported functions directly on the local network.

The API uses XML over HTTP and is available on the hub itself. It provides access to core resources such as gateways, locations, modules, appliances, logs, and actuator functionalities. Depending on the connected devices and the product type, the API can be used to read measurements such as electricity usage, temperature, and device state, and to control supported functions such as relay switching.

The same API structure is used across multiple Plugwise hub-based products. As a result, some resources or attributes may be present in the schema but not relevant for every installation or product configuration.

Accessing the hub API Locally

Plugwise Hubs expose a local HTTP API that can be accessed from devices on the same local network (LAN). You can connect to the Hub using one of the following methods:

MethodEndpointNotes
Local IP addresshttp://{ip_address}Recommended for stability (consider setting a static DHCP lease)
Hostname (mDNS)http://smile{mac_suffix}.local{mac_suffix} = last 6 characters of the LAN MAC address. Requires mDNS/Bonjour support. Can be found on the label on the back of the hub.
Cloud announce endpointhttps://auth.plugwise.net/announce/{hub_id}Returns the last known local IP address. Useful for discovery.

mDNS generally works reliably on local networks without subnets, especially on Apple devices, but may require additional setup or fail across isolated networks or non-mDNS-capable clients.


Announce Endpoint

Plugwise provides a cloud-based announce endpoint that returns the Hub’s last known IP address on your local network in XML format. Use this endpoint to find your Hub's local IP address, then connect directly to the API using that address.

GET https://auth.plugwise.net/announce/announce/{hub_id}

This is the only step that requires an endpoint on auth.plugwise.net. All other API requests are done via the local ip address of the hub.

Path parameters

ParameterTypeDescription
hub_idstring8-character identifier of the hub

Response attributes

FieldTypeDescription
productstringType of product:
smile = Smile P1
smile_thermo = Anna, Anna P1
smile_open_therm = Adam SA, Adam HA
versionstringCurrent firmware version of the Hub
lan_ipstringLast known local IP address Ethernet (if available)
wifi_ipstringLast known local IP address Wi-Fi ( if available)
timestampdatetimeTimestamp of when the IP info was last updated (local time)

Example request

GET https://auth.plugwise.net/announce/fxzrqxpp

Example response

<beacon>
<product>smile</product>
<version>4.4.4</version>
<lan_ip/>
<wifi_ip>192.168.1.188</wifi_ip>
<timestamp>2025-08-08T09:33:04.000+02:00</timestamp>
<rest_root>/</rest_root>
<server_timestamp>2025-08-08T07:33:04+00:00</server_timestamp>
</beacon>

Authentication

All requests to the local API of a Plugwise Hub require HTTP Basic Authentication.

FieldValue
Usernamesmile
Password8-character hub ID

The Hub ID can be found on the label on the bottom of the hub.

Request Format

Use Basic Auth headers in your HTTP request. Example in curl:

curl -u "smile:fxzrqxpp" http://192.168.1.136/core/gateways

Base URL and API conventions

Once you've located the Hub, all endpoints are accessible under /core/ path:

http://{hub-address}/core/

Example request

GET http://192.168.1.188/core/gateways

Request format

  • Protocol: HTTP
  • Authentication: Basic Auth
  • Payload format: XML
  • Encoding: UTF-8

Parameter syntax

This API uses semicolon-separated parameters instead of traditional query strings.

/core/appliances;id={uuid}
/core/locations;type=livingroom;preset=home

Multiple parameters can be combined:

/core/modules;vendor_name=Plugwise;vendor_model=160-01

Scope vs filter parameters

  • Scope parameters define which resource(s) are targeted. Example:
/core/appliances;id={appliance_id}
  • Filter parameters refine the returned data.
    Example:
/core/locations;type=livingroom

Time parameters

Time-based filters use ISO 8601 format (UTC unless stated otherwise):

ParameterDescription
@fromStart of time range
@toEnd of time range
@intervalAggregation interval (e.g. PT1H, P1D)

Default behaviour (logs)

If no @from and @to parameters are provided, logs return data based on the most recent available measurements per log. This is evaluated independently per log, meaning results may contain data from different dates.