home-assistant / home-assistant.io

:blue_book: Home Assistant User documentation
https://www.home-assistant.io
Other
4.56k stars 7.09k forks source link

Reworking of ZHA documentation #30230

Open stiltjack opened 7 months ago

stiltjack commented 7 months ago

Feedback

The current ZHA page in the documentation is very dense and includes a lot of information applicable to Zigbee generally. This level of detail may be problematic, particularly to new users, in an integration which is by its very nature a bit of a black box, and which now has a very good GUI.

What is your response to this suggestion?

I'd be happy to give some time to this if the idea is acceptable in principle. Just thought I'd check first.

URL

https://www.home-assistant.io/integrations/zha/

Version

2023.12.0

Additional information

No response

home-assistant[bot] commented 7 months ago

Hey there @dmulcahey, @adminiuga, @puddly, @thejulianjes, mind taking a look at this feedback as it has been labeled with an integration (zha) you are listed as a code owner for? Thanks!

Code owner commands Code owners of `zha` can trigger bot actions by commenting: - `@home-assistant close` Closes the feedback. - `@home-assistant rename Awesome new title` Renames the feedback. - `@home-assistant reopen` Reopen the feedback. - `@home-assistant unassign zha` Removes the current integration label and assignees on the feedback, add the integration domain after the command. - `@home-assistant add-label needs-more-information` Add a label (needs-more-information) to the feedback. - `@home-assistant remove-label needs-more-information` Remove a label (needs-more-information) on the feedback.
Hedda commented 6 months ago

What is your response to this suggestion?

  • Rename the current page (with some edits) "Zigbee"
  • Create a new page "Zigbee Home Automation" containing straightforward instructions for installing and using the ZHA integration

I do agree that it would be a good idea for Home Assistant webpage to contain a new section that could have separate pages which summarize and explain each different standard IoT protocol, and that such separation is especially needed for Zigbee because they are so many ways to and indirectly add Zigbee devices to Home Assistant via various integrations.

That way generic Zigbee information that applies to all implementations could be collected on a single page that could be referenced not only by the ZHA integration but also integrations for other gateways/bridges/hubs that also support Zigbee devices in their own way before abstracting them using their own APIs, like example; deCONZ, Hue. Tradfri, SmartThings, etc.

FYI, I and some others have previously suggested somewhat similar ideas before, with ideas of creating some sub-pages for the ZHA integration or pre-pages for Zigbee, similar to how it is/was for the Z-Wave integration, to make the main page of the ZHA integration less cluttered, but previous ideas were shut down. For reference see these related discussions/PR:

https://github.com/home-assistant/home-assistant.io/issues/11569

https://github.com/home-assistant/home-assistant.io/pull/10585

https://github.com/home-assistant/home-assistant.io/issues/24224

Note! Contradicting this is the fact that at least the zwave_js integration still has a sub-page/pre-page for Z-Wave Controllers.

PS: I still think that all the information provided on the current ZHA integration page is needed to have a good user experience.

Hedda commented 6 months ago

By the way, I still think https://github.com/home-assistant/home-assistant.io/issues/24224 discussed should be reopened because still think the integration should be renamed regardless.

Its current name of "Zigbee Home Automation" (or "ZHA" for short) was perhaps appropriate in the begnning of its development when the integration only supported the "Zigbee Home Automation" application profile part of the Zigbee specification, but its name is today directly contradicting now that also supports Zigbee 3.0 which includes several other Zigbee application profiles:

history behind the name "ZHA" and "Zigbee Home Automation" actually came from the old Zigbee 1.2 specification which had/have a specification standard called "Zigbee Home Automation" which is/was abbreviated to "ZHA" and was taken up by the Home Assistant's ZHA integration as a name when it only supported that specific Zigbee specification standard, but that is not really valid any longer as Home Assistant's ZHA integration now also support other specification standards included in Zigbee 3.0

FYI, Zigbee 3.0 specification is suite of different Zigbee application profiles where "Zigbee Home Automation" is just one of them.

https://en.wikipedia.org/wiki/Zigbee#Application_profiles

Zigbee 3.0 currently integrate support for these three major Zigbee application profiles:

This is reflected in the zigpy codebase that the integration depends on, which today contain zha.py, zll.py and zgp.py. See:

https://github.com/zigpy/zigpy/tree/dev/zigpy/profiles

As such the homeautomation.py and lightlink.py are just cluster handler modules that are a smaller part of the whole:

https://github.com/home-assistant/core/tree/dev/homeassistant/components/zha/core/cluster_handlers

PS: In the future they could possibly also add support "Zigbee Smart Energy" (ZSE) as well to extend itself beyond Zigbee 3.0 to some day fully support "Zigbee Smart Energy" (ZSE), which is not totally unlikley as it already partially supported in component:

https://github.com/home-assistant/core/blob/dev/homeassistant/components/zha/core/cluster_handlers/smartenergy.py