Home Assistant & MQTT
Connect SUPLA with Home Assistant through MQTT. MQTT Discovery can automatically discover most supported device functions.
Explore the integrationConnect SUPLA with Home Assistant, use MQTT and the REST API, run your own server, or build your own devices.
SUPLA is an open platform. You can use ready-made integration mechanisms, build solutions of your own, and contribute to the project.
Choose where you want to start.
Connect SUPLA with Home Assistant through MQTT. MQTT Discovery can automatically discover most supported device functions.
Explore the integrationBuild your own smart home devices using the supla-device SDK.
Start building a deviceBuild apps, automations, and connections to other systems using the REST API, OAuth 2.0, and MQTT.
Explore the APIRun your own SUPLA instance and manage the infrastructure in your own environment.
Explore self-hostingSUPLA provides MQTT and a REST API for connecting devices and data with other automation systems, applications, and services of your own.
SUPLA recommends MQTT as the primary way to integrate with Home Assistant.
SUPLA supports two MQTT scenarios: account-wide MQTT provided by the SUPLA server, and direct local MQTT available on supported devices.
Account-wide MQTT exposes devices and channels from your SUPLA account through the SUPLA server and supports MQTT Discovery.
Some SUPLA devices can also connect directly to your own MQTT broker for local communication.
supla-device is an open SDK for building devices that work with the SUPLA ecosystem.
Use ready-made components, examples, and communication mechanisms instead of building SUPLA integration from scratch.
The library provides ready-made components for relays, buttons, sensors, and other common smart home device functions.
View supla-device on GitHub Opens in a new tabThe excerpt below shows the relay and button logic. The complete example also includes Wi-Fi and network configuration.
#include <SuplaDevice.h>
#include <supla/control/button.h>
#include <supla/control/relay.h>
void setup() {
auto relay = new Supla::Control::Relay(12);
relay->setDefaultFunction(SUPLA_CHANNELFNC_POWERSWITCH);
auto button = new Supla::Control::Button(0, true, true);
button->addAction(Supla::TOGGLE, relay, Supla::ON_CLICK_1);
SuplaDevice.begin();
}
void loop() {
SuplaDevice.iterate();
}Use the REST API to read device and channel states, control supported functions, access measurements and build applications or integrations around your SUPLA account.
Access can be authorized using OAuth 2.0, and API documentation is available in OpenAPI format.
Want to manage the infrastructure yourself? You can run your own SUPLA instance in your own environment.
The recommended basis for self-hosting is the supla-docker project, which lets you run the required components using Docker Compose. Running your own server gives you more control over infrastructure and data, but also means taking responsibility for maintaining it.
Do not assume that every external service will work on a private instance exactly as it does with the official cloud. Some features may require additional keys, certificates, or configuration.
supla-docker on GitHub Opens in a new tabThe source code of the main platform components is publicly available. You can inspect, run, modify, and contribute to it under the licenses of the individual projects.
SDK for building IoT and smart home devices (Arduino, ESP32, ESP8266, Linux)
C++Opens in a new tabWeb application for management (PHP, Symfony)
PHP, JavaScript, Vue.js, SymfonyOpens in a new tabMain communication server (C++)
C++Opens in a new tabRecommended self-hosting solution (Docker)
DockerOpens in a new tabNative Android application
Java/KotlinOpens in a new tabNative iOS application
Swift, Objective-COpens in a new tabMain technologies used across SUPLA projects
Primary programming language
Development environments
Native ESP32 framework
Primary language of the communication server (supla-core)
Web application (supla-cloud)
Main database
Database for historical data storage
Containerization
Android app
iOS app
Client libraries
SUPLA is developed as an open-source project. You can report bugs, suggest changes, submit pull requests, or develop projects of your own using SUPLA. The forum brings together users, developers, hobbyists, and people building their own devices and integrations.