home-assistant / home-assistant.io

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

Is the ZHA integration only "Local Polling" or also "Local Push" depending on the device? #26125

Open Hedda opened 1 year ago

Hedda commented 1 year ago

Feedback

Wondering if IoT class classification of ZHA integration only being "Local Polling" is really correct? Is it also "Local Push" too?

As I understand it "Local Polling" or also "Local Push" is per device in Zigbee(?), and especially older devices (with old firmware / old Zigbee stacks) used to require pulling, but most newer Zigbee devices push their reports to the Zigbee Coordinator?

Note that this is also a marketing thing, as many users prefer integrations that uses "Local Push" instead of "Local Polling". 😉

The question is if the ZHA integration is today really only "Local Polling" or only "Local Push", or does it in fact support both and it depend on the devices being used and attributes being read? So should maybe say "Local Polling and Local Push"?

2023-02-05 (2)

I thought Zigbee supported both "Local Push" and "Local Polling" but that it will depend on what each device user uses supports?

https://www.home-assistant.io/blog/2016/02/12/classifying-the-internet-of-things/#classifiers

https://www.home-assistant.io/blog/2016/02/12/classifying-the-internet-of-things/#polling-the-local-device

POLLING THE LOCAL DEVICE

These devices will offer an API that is locally accessible. The home automation will have to frequently check if the state has been updated.

Advantages:

Disadvantages:

https://www.home-assistant.io/blog/2016/02/12/classifying-the-internet-of-things/#local-device-pushing-new-state

LOCAL DEVICE PUSHING NEW STATE

The best of the best. These devices will send out a notice when they get to a new state. These devices usually use a home automation protocol to pass it’s message to a hub that will do the heavy lifting of managing and notifying subscribers

Advantages:

Disadvantages:

URL

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

Version

No response

Additional information

To compare; Z-Wave JS integration is classified as "Local Push", and Z-Wave uses very similar architecture/technology to Zigbee:

2023-02-05 (3)

So if can only pick one or the other and Z-Wave which use similar protocol says "Local Push", would it be better to say same?

home-assistant[bot] commented 1 year ago

Hey there @dmulcahey, @adminiuga, @puddly, 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 issue. - `@home-assistant rename Awesome new title` Change the title of the issue. - `@home-assistant reopen` Reopen the issue. - `@home-assistant unassign zha` Removes the current integration label and assignees on the issue, add the integration domain after the command.
github-actions[bot] commented 1 year ago

There hasn't been any activity on this issue recently. Due to the high number of incoming GitHub notifications, we have to clean some of the old issues, as many of them have already been resolved. If this issue is still relevant, please let us know by leaving a comment 👍 This issue has now has been marked as stale and will be closed if no further activity occurs. Thank you for your contributions.

Hedda commented 1 year ago

Still open unanswered question

github-actions[bot] commented 1 year ago

There hasn't been any activity on this issue recently. Due to the high number of incoming GitHub notifications, we have to clean some of the old issues, as many of them have already been resolved. If this issue is still relevant, please let us know by leaving a comment 👍 This issue has now has been marked as stale and will be closed if no further activity occurs. Thank you for your contributions.

Hedda commented 1 year ago

Not stale. Still valid question I think.

github-actions[bot] commented 1 year ago

There hasn't been any activity on this issue recently. Due to the high number of incoming GitHub notifications, we have to clean some of the old issues, as many of them have already been resolved. If this issue is still relevant, please let us know by leaving a comment 👍 This issue has now has been marked as stale and will be closed if no further activity occurs. Thank you for your contributions.

Hedda commented 1 year ago

Still wondering about this. Interestingly, IoT class for the the new Matter integration is listed as "Local Push" while the Thread integration and the Open Thread Border Router integration are listed as "Local Polling", though believe all probably do both?

Hedda commented 10 months ago

Still very relavant since users are confused by this and think the ZHA integration will be slow because it says it using pulling.

Again, does the ZHA integration not use both?

You use push when you change state, like a switch to ON or OFF, and then use pull when you check something like power monitoring.

It is confusing that the ZHA integration say that it uses pulling if it also uses pushing too depending on the command.

People associate pulling with slow and delays.

codyc1515 commented 10 months ago

I agree with you actually. Should be Local Push, based on my knowledge of Zigbee and how it operates.

github-actions[bot] commented 8 months ago

There hasn't been any activity on this issue recently. Due to the high number of incoming GitHub notifications, we have to clean some of the old issues, as many of them have already been resolved. If this issue is still relevant, please let us know by leaving a comment 👍 This issue has now has been marked as stale and will be closed if no further activity occurs. Thank you for your contributions.

Hedda commented 8 months ago

Still not answered. Again, I do believe different Zigbee devices use "Local Polling" and others use "Local Push" or a combination.

https://www.waveshare.com/w/upload/4/4b/Zigbee-Wireless-Networking.pdf

ZCL allows for both “ push ” and “ pull ” methods (report attribute and read attribute methods), for determining the state of any given cluster’s attributes. Take a look at Figure 6.4 .

In the “ push” method, the devices themselves send reports when the attribute changes. The report can be configured to be time-based, change-in-value-based, or both. For example, an on/off light could be configured to report every time the light changes state (on or off). A temperature sensor could be configured to report once every minute, or if the temperature raises or lowers by five degrees, whichever comes first. A settable minimum reporting interval ensures that if the temperature flutters between two values, a report isn’t sent too often.

In the “ pull” method, the device that needs the information asks the other devices for their current values. For example, when someone picks up the TV remote control, the current outside temperature could be read from the external temperature sensor, and reported on the remote’s display or the television screen. A Home Automation management system could ask each node for the manufacturer information and display a systemwide view each time a PC application starts up.

image

github-actions[bot] commented 6 months ago

There hasn't been any activity on this issue recently. Due to the high number of incoming GitHub notifications, we have to clean some of the old issues, as many of them have already been resolved. If this issue is still relevant, please let us know by leaving a comment 👍 This issue has now has been marked as stale and will be closed if no further activity occurs. Thank you for your contributions.

codyc1515 commented 6 months ago

Still current.