Troubleshooting

Device shows incorrect model

Afero IoT 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. See Contributing.

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 configure logging handlers. In a script, call logging.basicConfig (or equivalent) before setting logging.getLogger("aioafero").setLevel(logging.DEBUG). See Examples. Home Assistant and other hosts handle this themselves.

Authentication failures

  • InvalidAuth — credentials or refresh token rejected. Run a full login again with v1.AferoAuth.for_login and replace the stored refresh_token (see Authentication).

  • OTPRequired / InvalidOTP — collect the emailed code from the user and call auth.submit_otp on the same AferoAuth instance (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 Device splitting.