-
Notifications
You must be signed in to change notification settings - Fork 59
Description
Suggest that zha and zigpy libraries add deprecation / legacy warnings to logs to (and UI) flag older firmware and obsolete radio adapter hardware.
Not sure if this suggested idea about legacy warnings belongs here in zha or should be seperate suggestions for each and every zigpy radio library, but posted issue here in the zha repository since this is also indirectly related to the other issue opened by puddly about deprecating XBee + ZiGate:
Example of suggested deprecation and legacy notice warnings about legacy that should be logged and preferably also flagged in the ZHA UI:
bellows radio library deprecation notice / legacy warnings:
-
Add deprecation warnings to logs stating EmberZNet firmware older than version 6.7.10 is deprecated and recommend user to upgrade firmware.
-
Add deprecation warnings to logs stating Silabs radio adapter hardware older than EFR32MG12 is deprecated and recommend replace HW.
(Meaning older Ember firmware like EmberZNet 5.x.x will be listed as deprecated and old hardware like EM35x/EM35xx will be flagged as legacy).
zigpy-znp radio library deprecation notice / legacy warnings
-
Add deprecation warnings to logs stating Z-Stack firmware older than Z-Stack 3.1.x is deprecated and recommend user to upgrade firmware.
-
Add deprecation warnings to logs stating ZNP radio adapter hardware older than CC2652 or CC1352 is deprecated and recommend replace HW.
(Meaning older firmware like Z-Stack 1.2.x + 3.0.x will be listed as deprecated and old hardware like CC2530 and CC2531 will be flagged as legacy).
zigpy-deconz radio library deprecation notice / legacy warnings
-
Add deprecation warnings to logs stating firmware older than deconz 0x2654xxxx is deprecated and recommend user to upgrade firmware.
-
Add deprecation warnings to logs stating radio adapter hardware older than ConBee III (ConBee 3) is deprecated and recommend replace HW.
zigpy-xbee and zigpy-zigate radio library deprecation notice / legacy warnings
XBee + ZiGate been suggested to be formally deprecated because firmware are not feature complete and libraries are no being actively developed:
Arguments for adding such deprecation notice / legacy warnings in ZHA and zigpy radio libraries
Note! The suggestion here is not to actually remove support at this point, but only to warn about deprecating/deprecated firmware and radio adapter hardware. The goal with tis is to guide new and existing users towards using newer firmware and more modern radio adapter hardware that you plan to support long term, and discourage the use of those that will be phased out sooner rather than later because they are old and obosolete. This will help give users a better user experience and hopefully also mean fewer support issues due to old firmware and/or old hardware.
What deprecation notice / legacy warnings mean in this case in the simplest terms here is to activly recommend against using older firmware versions and old legacy radio adapter hardware that is no longer updated/maintained by the manufacturers (or in some cases have even been officially made end-of-life by the manufacturer). Preferably should also be officially listing deprecating in Home Assistant's ZHA integration documentation as well as the readme files for each zigpy radio library.
So while this project has always strived to run on almost all hardware, to keep the project moving forward and not having to support older legacy firmware and hardware forever you must sometimes make difficult decisions to deprecate old firmware and hardware, even if it is just on paper. In practice deprecation notices / legacy warning like this will only affect a small percentage of users, and ZHA users can already relativly easily upgrade or migrate to newer hardware. Even though they will be officially deprecated, you are giving existing users time to migrate to newer firmware and hardware.
Ultimatly this should help to reduce both technical debt by enabling you to eventuelly phase out old code, addressing security vulnerabilities in old firmware, while still allowing for graceful migrations, preserving backward compatibility until it will no longer be necessary to keep legacy support, benefiting both developers and end-users.
This will indirecttly also effect deprecate all firmware and radio adapter hardware not capable of effectivly support the Zigbee 3.0 specification.
PS: Implementing this and clarifying it in each zigpy radio library readme.md file also means that can close this PR too: