This integration will allow you to get events from your SleepAsAndroid application in a form of the sensor states and events in Home assistant.
Sine 2025.9 Home Assistant have own default integration with Sleep as Android. Please migrate to it. Documentation is available at https://www.home-assistant.io/integrations/sleep_as_android/
You will need:
- Home Assistant with configured MQTT integration
example of configuration.yaml:mqtt: broker: mqtt.myserver port: 1883 username: ha_user discovery: true
- Sleep As android application
- go to Settings -> Services -> Automatization -> MQTT
- enable and configure MQTT
- go to HACS ->
Integrations
- press
+ Explore & Add repositories
button - type
Sleep As Android
in search field and click at integration name - press
Install this repository to HACS
button - press
Install
button (if you have outdated version of Home Assistant -- check integration version in Wiki ) - restart Home Assistant
- go to Home Assistant
Settings
->Integrations
->Add Integration
(right bottom conner) - type
Sleep As Android
in search field and click at integration name. Clean browser cache if nothing found.
Name
: name of the device/sensor and a prefix for the events. Will be used as a default prefix for devices and events.Topic template
: template for MQTT topic whereSleep as Android
will publish event.%%%device%%%
may be used in template to point to device name position. Examples:- SleepAsAndroid/igor - no
%%%device%%%
in template just one device will be tracked and one device will be created forHomeAssistant
- SleepAsAndroid/%%%device%%% - all sub topics in
SleepAsAndroid/
will be recognized as devices - devices/%%%device%%%/SleepAsAndroidData - all subtopic in
devices/
will be used as devices, data will be taken from/SleepAsAndroidData
for every device, iedevices/igor/SleepAsAndroidData
for device igor
- SleepAsAndroid/igor - no
QOS
: quality of service for MQTT
To configure Sleep As Android
for working with this integration:
- Go to application settings
- Find Services in integration section
- Go to Automation
- Find MQTT section
Then:
- Enable it
URL
is a URL for your MQTT server. It should look liketcp://mqtt_user:mqtt_password@mqtt_host:mqtt_port
Topic
is a topic name where the application will publish events. SeeTopic template
section of component configuration for details. Application settings MUST NOT have%%%device%%%
macro. Use desired device name at position of%%%device%%%
of integration configuration. Examples related to integration configuration above: SleepAsAndroid/igor or devices/igor/SleepAsAndroidData. Device name will be "igor" in both cases.Client ID
is any ID. It is not used by integration and is not published to MQTT (now).
More details in Wiki.
- import blueprint:
- Got to Home Assistant
settings
blueprints
import blueprint
button- put blueprint URL
- press
preview
button - press
import
button
- Got to Home Assistant
- create automatization based on blueprint:
person
andstate
is using to run actions only if person in state (to avoid run home automatization related to sleep tracking while vacation in Siberia, for example)- add actions for evens
- select
Device
in automatization trigger and useSleepAsAndroid
device; - select trigger from a list.
events will be fired up for every MQTT message
<name>
is an integration name in lower case without spaces from the Settings
dialog.
<device>
is a device name
List of events is available at Sleep As Android documentation page
State of sensor sensor.<name>_<device>
will contain the recent event name, that got published by the application.
<name>
is an integration name in lower case without spaces from the Settings
dialog.
If application publishes a new event, then integration fires <name>
event with payload:
{
"event": "<event_name_from_application>"
}
events will be fired up for every MQTT message
Sensor have additional attributes:
timestamp
-- value1 from application event. It is usually timestamp of something. Meaning is depended on event. Please check Sleep As Android events documentation for more details;label
-- value2 from application event. It is usually alarm label. You can use this attribute to tell one alarm from another.
If event have no value<N>
field, then attribute will be set to unknown
.
configuration.yaml
:
logger:
default: warning
logs:
custom_components.sleep_as_android: debug