github amosyuen/ha-tplink-deco v3.15.0
v3.15.0 - System Logs, Syslog Forwarding and Session Cleanup

one hour ago

New Features

  • Download the Deco system log using the tplink_deco.download_system_log action. The action saves a file under <config>/tplink_deco_logs/ and returns its path and line count. Config-entry selection is supported when multiple entries are loaded. (#650)
  • Optionally forward new Deco system log lines to a syslog receiver over UDP or TCP. Forwarding is disabled by default and configured per entry. Based on #660 and the original work in #607.
  • Syslog forwarding remembers its position across Home Assistant restarts, skips existing history on first enable, respects polling pause, and stops before logout on integration unload.

Fixes and Improvements

  • Give each polling switch a config-entry-specific unique ID and migrate the old ID while preserving the existing entity ID. (#655, replacing #648; fixes #647)
  • Release the Deco session after successful config-entry unload, with coordinator cleanup performed in the correct order. Failed platform unloads retain runtime state. (#656, replacing #652)
  • Handle Deco nodes with missing or empty nicknames by falling back to their MAC address. (#651)
  • Remove the deprecated CONN_CLASS_CLOUD_POLL declaration; iot_class remains local_polling. (#658; fixes #664)
  • Update Slovak setup/options translations, including the remaining untranslated interval label. Based on #653.
  • Link the README to the documentation wiki. (#659)
  • Update development/test constraints for pip and Ruff. (#662, #663)

Validation

  • Locally checked Python syntax, JSON, pre-commit and diff whitespace.
  • Live tested UDP and TCP forwarding, including reception of 1,000-line batches.
  • Verified TCP forwarding resumes after a Home Assistant restart and stops when disabled.
  • Manual system-log download and the polling switch were tested by the maintainer.
  • Normal Deco, client and wireless updates continued successfully during the observed test.
  • The combined release PR passed the required GitHub checks before merge.

Live validation covers the maintainer's setup, not every Deco model, firmware or multi-entry arrangement. Additional scenarios have automated regression coverage.

Important Notes

  • Each syslog poll downloads the whole Deco log and uses the shared API session, which can delay other requests. The default forwarding interval is 300 seconds.
  • Only the newest 1,000 new lines are forwarded per poll. If more lines are generated, older excess lines are skipped; this is not a lossless log archive.
  • Syslog transport is unencrypted. Raw Deco logs may contain client identifiers and authentication-related protocol data. Use a trusted local receiver and review/redact logs before sharing them publicly.
  • UDP delivery is best effort. TCP retries after a partial send can duplicate messages.
  • Log downloads and forwarding are unsupported on legacy encrypted local-web firmware such as the affected Deco S7 firmware. Forwarding emits one warning and stops until reload.

Thanks

  • @alunduil (Alex Brandt): manual system-log download and opt-in syslog forwarding.
  • @gappleby: original system-log implementation, parsing and tail-matching work in #607.
  • @rjullien (Rene Jullien): nickname fallback and the original session-cleanup implementation and tests.
  • @SJRepos: the original multi-entry polling-switch fix.
  • @misa1515: Slovak translation updates and the deprecation report.
  • @dkwolf1: integration, lifecycle/migration safeguards, regression coverage and live release testing.
  • @dependabot: development dependency updates.

AI-assisted contributions retain the original co-author attribution in the integration commit.

Don't miss a new ha-tplink-deco release

NewReleases is sending notifications on new releases.