Sleep As Android integration for Home Assistant
This integration will allow you to get events from your SleepAsAndroid application in a form of the sensor states and events in Home assistant.
You will need:
mqtt:
broker: mqtt.myserver
port: 1883
username: ha_user
discovery: true
Integrations
+ Explore & Add repositories
buttonSleep As Android
in search field and click at integration nameInstall this repository to HACS
buttonInstall
button (if you have outdated version of Home Assistant -- check integration version in Wiki )
Settings
-> Integrations
-> Add Integration
(right bottom conner)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 where Sleep as Android
will publish event. %%%device%%%
may be used in template to point to device name position. Examples:
%%%device%%%
in template just one device will be tracked and one device will be created for HomeAssistant
SleepAsAndroid/
will be recognized as devicesdevices/
will be used as devices, data will be taken from /SleepAsAndroidData
for every device, ie devices/igor/SleepAsAndroidData
for device igor
QOS
: quality of service for MQTTTo configure Sleep As Android
for working with this integration:
Then:
URL
is a URL for your MQTT server. It should look like tcp://mqtt_user:mqtt_password@mqtt_host:mqtt_port
Topic
is a topic name where the application will publish events. See Topic 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.
settings
blueprints
import blueprint
buttonpreview
buttonimport
buttonperson
and state
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)Device
in automatization trigger and use SleepAsAndroid
device;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