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)
| 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)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| 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 logRelease 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 logSecurity 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.
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 logA 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.