Skip to main content

pynapoleon

Standalone Python library for Napoleon Astound-series fireplaces.

Napoleon's cloud is the Ayla Networks IoT platform, so this library is a thin Napoleon-property mapping layer on top of ayla-iot-unofficial (the same package the Shark vacuum Home Assistant integration uses).

Status: alpha — under active reverse-engineering. APIs will change.

Features (planned)

  • Async login / token refresh (delegated to ayla-iot-unofficial)
  • Discover fireplaces on the account
  • Read state: power, flame, heater, setpoint, ember/top RGB lights, schedules
  • Write state via batch datapoints (single round-trip)
  • Apply favourites (partytime, campfirewarmth, summerday, glowingsunset)
  • Celsius-native (with helpers for Fahrenheit display)

Installation

pip install pynapoleon

Usage

import asyncio
from pynapoleon import NapoleonClient

async def main():
    async with NapoleonClient(
        email="you@example.com",
        password="...",
        # app_id / app_secret default to the Napoleon mobile app values;
        # override only if you've registered your own Ayla app.
    ) as client:
        await client.login()
        for fp in await client.fireplaces():
            await fp.refresh()
            print(fp.name, "power:", fp.power, "flame:", fp.flame_speed)
            await fp.set_setpoint_c(20)

asyncio.run(main())

CLI

A small CLI is provided for manual testing:

python -m pynapoleon login
python -m pynapoleon list
python -m pynapoleon state <DSN>
python -m pynapoleon set <DSN> power_on_off=1

Security note

Like any Ayla-based device, talking to the cloud requires an app_id and app_secret. This library ships the values used by the Napoleon mobile app as defaults; they are not secrets in the cryptographic sense (any mitmproxy capture exposes them), but the project does not endorse abuse.

Do not commit credential files, tokens, or mitmproxy captures.

Reverse-engineering notes

See docs/protocol.md for the property catalog and write-command details derived from app traffic.

License

MIT — see LICENSE.

Metadata

Release files for pynapoleon 0.0.4

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

Source distribution (sdist)

Source distribution for pynapoleon 0.0.4
File Size Uploaded Provenance Actions
pynapoleon-0.0.4.tar.gz 24.8 kB With provenance Details for pynapoleon-0.0.4.tar.gz

Built distribution (wheel)

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

Total release size: 42.8 kB

Release files / pynapoleon-0.0.4.tar.gz

Download URL pynapoleon-0.0.4.tar.gz
Size 24.8 kB
Tags Source
SHA-256 checksum
How to use checksums
04944aeb5f9bdf40d57b14b8d19929264bbb50593b13e742391d70e37c53db5d
BLAKE2b-256 checksum
How to use checksums
f1891e8970f5bc163128977afca5e66480039180726486cca4d87a99f3ac266b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

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 May 15, 2026.

Transparency log

Release files / pynapoleon-0.0.4-py3-none-any.whl

Download URL pynapoleon-0.0.4-py3-none-any.whl
Size 18.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
a8066b47f22e5b786672dbef13377bd4d8e29b597aee0d3d4ecc02686253d4f8
BLAKE2b-256 checksum
How to use checksums
b4b2800622f8f65d2131f947b16fa21f5b93b4f2f371d40196699bd3873e0be0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

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 May 15, 2026.

Transparency log

Security for pynapoleon 0.0.4

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.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for pynapoleon-0.0.4.tar.gz

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 May 15, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

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