Troubleshooting¶
Device shows incorrect model¶
Afero does not always report enough metadata for automatic classification.
Open a PR against src/aioafero/device.py and update AferoDevice.__post_init__
so the device maps to the correct device_class.
Slow or stale updates¶
The API rate-limits requests. Concurrent clients (phone app, Home Assistant, scripts)
compete for the same quota. Reduce polling frequency with polling_interval or
limit concurrent integrations.
No log output when debugging¶
aioafero does not attach logging handlers. In a standalone script, configure the stdlib
logger before raising levels — for example logging.basicConfig(level=logging.INFO) and
logging.getLogger("aioafero").setLevel(logging.DEBUG). See Examples.
Integrations such as Home Assistant configure aioafero loggers via their own logging
setup.
Authentication failures¶
InvalidAuth— credentials or refresh token rejected. Run a full login again withv1.AferoAuth.for_loginand replace the storedrefresh_token(see Authentication).OTPRequired/InvalidOTP— during setup, the account emailed a one-time code. Collect it from the user and callauth.submit_otpon the samev1.AferoAuthinstance (aioafero does not read email; see Authentication).ExceededMaximumRetries— transient overload (429/503/504); bridge retries automatically.
Incorrect split-device state¶
Split entities share a parent metadevice ID for API updates. Ensure integrations use
each model’s update_id (not id) when debugging state writes. See
Split devices.