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.2.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.2.0
File Size Uploaded
aeraforhome-0.2.0.tar.gz 10.6 kB Details

Built distribution (wheel)

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

Total release size: 21.1 kB

Release files / aeraforhome-0.2.0.tar.gz

Download URL aeraforhome-0.2.0.tar.gz
Size 10.6 kB
Tags Source
SHA-256 checksum
How to use checksums
10c2fb2e48797c69ea3e4bf18d1a465146ba378e84b4bf2eecd3e63a30f7b75c
BLAKE2b-256 checksum
How to use checksums
43fb972124edb46bf422aece9ddb8525fac361a377377184976495671c941a45
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.2.0-py3-none-any.whl

Download URL aeraforhome-0.2.0-py3-none-any.whl
Size 10.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
f8869d00f069b893b4be793502f060025c2b641e504134ac44f595c0f100f5cf
BLAKE2b-256 checksum
How to use checksums
64930ff3e6982808216fa2e9b9074ca687e2e4864bd339d9ab5bd0defe399c62
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

This release

0.2.0 This release

2 release files

0.1.0

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