Skip to main content

aeraforhome-api

Unofficial Python client for the Aera for Home smart fragrance diffuser cloud API, reverse-engineered from the Android app (v2.3.6). Covers:

  • Authentication: email/password login via the Ayla Networks IoT platform, automatic token refresh on 401.
  • Device control: power on/off, intensity adjustment, timed fragrance sessions, schedule management.
  • Device state: fragrance name, remaining percentage, cartridge presence, error conditions.
  • Fragrance catalog: Mini fragrance lookup with names, codes, and QR URLs via Contentful CMS.

This library is designed to power a Home Assistant integration, but has no dependency on Home Assistant and can be used standalone.

Installation

pip install aeraforhome

Or install from source:

pip install -e .

Usage

import asyncio
from aera import AeraApi

async def main():
    api = AeraApi("your-email@example.com", "your-password")

    try:
        await api.login()

        devices = await api.get_devices()
        for device in devices:
            props = await api.get_device_properties(device)
            print(f"{device.device_name}: {device.fragrance_name} ({device.fragrance_remaining}%)")

        # Control a device
        await api.set_power(devices[0], True)
        await api.set_intensity(devices[0], 5)

        # Start a 60-minute session
        await api.start_session(devices[0], 60)

        # Get all Mini-compatible fragrances (for QR scanning)
        fragrances = await api.get_mini_fragrances()
        for f in fragrances:
            print(f"{f['name']} ({f['code']}): {f['qr_url']}")

    finally:
        await api.close()

asyncio.run(main())

Supported Devices

Model Type Max Intensity
Aera 1 aera1 10
Aera 2 aera2 10
Aera 3 aera3 10
Aera 3.1 aera31 10
Aera Mini aeraMini 5

API Methods

Method Description
login() Authenticate with email/password
refresh_auth() Refresh the access token
get_devices() Fetch all devices (includes room names)
get_device_properties(device) Fetch current state for a device
set_power(device, on) Turn device on/off
set_intensity(device, level) Set fragrance intensity
start_session(device, minutes) Start a timed session
stop_session(device) Stop a running session
get_schedules(device) Fetch device schedules
update_schedule(device, key, data) Update a schedule
get_mini_fragrances() Get all Mini fragrance names, codes, and QR URLs
get_device_metadata() Fetch user-assigned room names and positions
sign_out() Sign out from the service
close() Close the HTTP session

Device Properties

Property Description
device_name User-assigned room name (falls back to product name)
device_type DeviceType enum
is_online Connection status
is_power_on Power state
intensity Current intensity level
fragrance_name Resolved fragrance name (via Contentful for Mini)
fragrance_color Hex color from fragrance catalog
fragrance_remaining Percentage remaining (0-100)
is_cartridge_present Whether a cartridge is inserted (full-size only)
session_active Whether a timed session is running
session_time_remaining Minutes left in session
has_error Whether the device has an error condition

Scripts

  • example.py - Minimal usage example showing device listing and control.
  • test_local.py - Interactive test script that dumps all device properties including raw values, useful for debugging.

Development

pip install -e ".[dev]"
pytest

Disclaimer

This is an unofficial, reverse-engineered client with no affiliation to Aera, Prolitec, or Ayla Networks. It may break if the upstream API changes.

Release files for aeraforhome 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for aeraforhome 0.1.0
File Size Uploaded
aeraforhome-0.1.0.tar.gz 10.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for aeraforhome 0.1.0
File Interpreter ABI Platform
aeraforhome-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 20.4 kB

Release files / aeraforhome-0.1.0.tar.gz

Download URL aeraforhome-0.1.0.tar.gz
Size 10.1 kB
Tags Source
SHA-256 checksum
How to use checksums
b442ffe166ecbc2eac20e63da0656ec6d740751c03d02aabe2e9de09f3df6e36
BLAKE2b-256 checksum
How to use checksums
f5ed63feba1a3d36ad8b2b0c9d45add6b93555b449df8367c5d7324a97bb1dfb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 28, 2026.

Transparency log

Release files / aeraforhome-0.1.0-py3-none-any.whl

Download URL aeraforhome-0.1.0-py3-none-any.whl
Size 10.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
2055cd4a91bc67d34e294f132fb499cb3813029263ddf66b4f1f5d5fe87ba468
BLAKE2b-256 checksum
How to use checksums
86e1d3938bdcb5aaf35aa1af7288af1253ff4edf72ee657468697dfd60daabe4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 28, 2026.

Transparency log

Release history Release notifications | RSS feed

0.4.0

2 release files

0.3.1

2 release files

0.2.5

2 release files

0.2.4

2 release files

0.2.3

2 release files

0.2.2

2 release files

0.2.1

2 release files

0.2.0

2 release files

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page