Frigidaire Python API
A Python client for the Frigidaire 2.0 (Electrolux) cloud API, reverse-engineered from the mobile app. It drives Frigidaire Wi-Fi air conditioners and dehumidifiers, and is the library behind the Home Assistant Frigidaire integration.
Quickstart
from frigidaire import Frigidaire, JsonFileSessionStore, Mode
client = Frigidaire("email", "password", session_store=JsonFileSessionStore("session.json"))
for appliance in client.get_appliances():
print(appliance, appliance.state, appliance.mode, appliance.ambient_temperature, appliance.temperature_unit)
ac = client.get_appliances()[0]
client.set_mode(ac, Mode.COOL)
client.set_temperature(ac, 72)
get_appliances() returns a fresh Appliance snapshot per appliance on every call. The typed
accessors (state, mode, mode_state, target_temperature, humidity, bucket_full,
filter_needs_attention, is_connected, wifi_rssi, ...) parse the reported properties and
return None when the model does not report the value. appliance.get("someKey") reads anything
they do not cover.
The set_* commands encode the protocol's ordering quirks (power-on before mode, re-sending the
setpoint after a cold start, entering Dry mode before setting a humidity target), so callers only
express intent.
Sessions and the active-session cap
Electrolux caps the number of active sessions per account (cas_3403). Pass a session_store
so a still-valid session survives restarts instead of lingering server-side. SessionCapError is
raised when the cap is hit; back off and retry on the same session. AuthenticationError means
the credentials were rejected and retrying will not help.
See docs/RATE_LIMITING_AND_TIMEOUTS.md for write throttling and timeouts.
Testing downstream code
frigidaire.testing.FakeFrigidaire is a Frigidaire with the HTTP layer replaced: it serves canned
appliance records and records every command it would have sent. Sample records for a legacy window
AC, a newer portable AC and a dehumidifier ship alongside it.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file frigidaire-1.0.0.tar.gz.
File metadata
- Download URL: frigidaire-1.0.0.tar.gz
- Upload date:
- Size: 40.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.14.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7cbd295ba44ec504a18dd5473bdf06b9829943bd609050e4bfe944aff75cd7ff
|
|
| MD5 |
67940fa8ee7f2dccd0222b9a7f2c74c1
|
|
| BLAKE2b-256 |
1ca3862fd0533dad849b7508bc1236a8a347a94590818f1c066c6988efb2addf
|
File details
Details for the file frigidaire-1.0.0-py3-none-any.whl.
File metadata
- Download URL: frigidaire-1.0.0-py3-none-any.whl
- Upload date:
- Size: 47.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.14.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f1948293d0092dcd16f3bfbfc2e5ad09e61fffce38e3aafe26a4327bb1e75c26
|
|
| MD5 |
d6bbbcfb9fe9cab539c081ee765a0973
|
|
| BLAKE2b-256 |
03bec7f2ec323976b6192aa45e5741c11b8f3506d1c1b8062e77a80ebed4bf8d
|